后台代码
package com.action;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import javax.jms.BytesMessage;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
public class UploadServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//上传位置目标路径
String basePath = "D://upload";
//
DiskFileItemFactory dfif = new DiskFileItemFactory();
//
ServletFileUpload sf = new ServletFileUpload(dfif);
//
sf.setHeaderEncoding("UTF-8");
//判断表单是否为上传文件
if(!ServletFileUpload.isMultipartContent(req)){
return;
}
String message = "";
try {
List<FileItem> items = sf.parseRequest(req);
//是否是普通input
for (FileItem fileItem : items) {
if(fileItem.isFormField()){
String name = fileItem.getFieldName();
String value = fileItem.getString("utf-8");
System.out.println(name+","+value);
}
else{
//System.out.println(fileItem.getFieldName()+","+fileItem.getName());
//如果上传文件为空
String fileName = fileItem.getName();
if (fileName == null||fileName.trim().equals("")){
//跳过file的input 接着遍历其他input
continue;
}
//文件上传
InputStream is = fileItem.getInputStream();
FileOutputStream fos = new FileOutputStream(basePath + "/"+fileName);
byte[] buffer = new byte[1024];
int len = 0;
while ((len=is.read(buffer)) != -1){
fos.write(buffer, 0, len);
}
is.close();
fos.close();
fileItem.delete();
message = "文件上传成功";
}
}
} catch (FileUploadException e) {
e.printStackTrace();
message = "文件上传失败";
}
req.setAttribute("message", message);
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
}
前台表单
<form action="upload" method="post" enctype="multipart/form-data">
<input type="text" name="username">
<input type="text" name="password">
<input type="file" name="myFile">
<input type="submit" value="submit">
</form>