
就是那个3e5d开头的怎么回事
代码贴在下面了
package fun.nicely.servlet;
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 javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.List;
import java.util.UUID;
public class FileUploadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
resp.setCharacterEncoding("utf-8");
PrintWriter out = resp.getWriter();
File file = new File(req.getContextPath()+"\\TempFolder");
if (!file.exists()) {
file.mkdirs();
}
DiskFileItemFactory factory = new DiskFileItemFactory(1024*1024*10,file);
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置上传所有文件大小
upload.setSizeMax(1024*1024*6);
// 设置上传单个文件大小
upload.setFileSizeMax(1024*1024*4);
List<FileItem> fileItems = null;
try {
// 解析请求
fileItems = upload.parseRequest(req);
} catch (FileUploadException e) {
e.printStackTrace();
}
for (FileItem fileItem : fileItems) {
//判断是否是文件
if (fileItem.isFormField()) {
String name = fileItem.getFieldName();
if (name.equals("username")) {
if (!fileItem.getString().equals("")) {
String value = fileItem.getString("UTF-8");
out.write("上传者"+value+"<br>");
}
}
}else {
String fileName = fileItem.getName();
if (!fileName.equals("")&& fileName!=null) {
out.write("上传的文件名是:"+fileName+"<br>");
}
fileName = fileName.substring(fileName.lastIndexOf("/")+1);
String uploadPath = req.getServletContext().getRealPath("/upload/");
File uploadPathFolder = new File(uploadPath);
if (!uploadPathFolder.exists()) {
uploadPathFolder.mkdir();
}
File uploadFile = new File(uploadPath +UUID.randomUUID()+ fileName);
if (!uploadFile.exists()) {
uploadFile.createNewFile();
}
InputStream is = fileItem.getInputStream();
FileOutputStream fos = new FileOutputStream(uploadFile);
int len = 0;
byte[] buffer = new byte[1024];
while ((len = is.read(buffer))!=-1){
fos.write(buffer,0,len);
}
fos.close();
is.close();
out.write("文件"+fileName+"上传成功!<br>");
}
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
盲猜你的iO 流路径有问题!
把这个uploadFile 输出来,看log即可。