表單上傳圖片

1.表單

1.在form表單中加入屬性enctype="multipart/form-data"java

2.給一個input type類型爲file 的輸入框還有給nameapache

2.配置

在struts.xml中配置服務器

<!-- 設置struts2上傳的文件大小,默認狀況下的大小是2M ,默認單位是B,目前允dom

許上傳的最大爲100M -->ui

<constant name="struts.multipart.maxSize" value="104857600"/>this

3.controller/action(控制層)

1.接收圖片的參數定義規則:url

文件名稱的接收:必須定義的是全局變量,表單中的file框中的name值加上FileName;orm

2.接收文件內容的參數xml

private File photo;屬性名和input中的name值同樣。圖片

4.文件的上傳操做

1.文件重命名

2.文件的上傳.

package com.fh.action;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.UUID;

import org.apache.struts2.ServletActionContext;

/**

* @ClassName: FileUpload

* @Description: TODO(這裏用一句話描述這個類的做用)

* @author shangfeng

* @date 2018-6-24 上午11:00:46*/

public class FileUpload {

private String photoFileName;

private File photo;

public void uploadFile() {

System.out.println(photoFileName);

// 第一大步就是給文件重命名

// 先獲取文件的後綴名

String suffix =

photoFileName.substring(photoFileName.lastIndexOf("."));

System.out.println(suffix);

// 獲取一個32位的UUID

String uuid = UUID.randomUUID().toString().replace("-", "");

System.out.println(uuid);

String newFileName = uuid + suffix;

// 第二大步,就是將文件上傳到指定文件夾中。

// 1.獲取項目的發佈路徑

String realPath =

ServletActionContext.getServletContext().getRealPath(

"/");

System.out.println(realPath);

// 讀取服務器上的文件目錄

File filemdk = new File(realPath + "/" + "photo");

if (!filemdk.exists()) {

filemdk.mkdirs();

}

// 輸入流

FileInputStream fis = null;

// 輸出流FileOutputStream fos = null;

try {

// 獲取輸入流

fis = new FileInputStream(photo);

// 構建輸出流

fos = new FileOutputStream(filemdk + "/" + newFileName);

byte[] b = new byte[fis.available()];

fis.read(b);

fos.write(b);

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (fis != null) {

fis.close();

}

if (fos != null) {

fos.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

public String getPhotoFileName() {

return photoFileName;

}

public void setPhotoFileName(String photoFileName) {

this.photoFileName = photoFileName;

}public File getPhoto() {

return photo;

}

public void setPhoto(File photo) {

this.photo = photo;

}

}

5.項目中的圖片上傳

1.新增表單要加入圖片上傳功能。

2.列表要進行圖片展現

3.修改表單要加入圖片的回顯展現和新圖片的上傳功能。

action類中還要加入圖片的刪除造做

String realPath = ServletActionContext.getServletContext()

.getRealPath("/");

String oldFilePath = game.getCimgurl();

File file = new File(realPath + oldFilePath);

if (file != null) {

file.delete();

}

相關文章
相關標籤/搜索