file选择文件传输数据,写好的uploadServlet,
代码段有详细解释
package servlet;
import java.io.IOException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import
org.apache.commons.fileupload.FileUploadException;
import
org.apache.commons.fileupload.disk.DiskFileItemFactory;
import
org.apache.commons.fileupload.servlet.ServletFileUpload;
import db.MysqlUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
@WebServlet("/UploadServlet2")
public class UploadServlet2 extends
HttpServlet {
private
static final long serialVersionUID = 1L;
public UploadServlet2() {
super();
}
protected
void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
TODO Auto-generated method stub
response.getWriter().append("Served
at: ").append(request.getContextPath());
}
protected
void doPost(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
TODO Auto-generated method stub
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=UTF-8");
resp.setCharacterEncoding("utf-8");
String
imgfile = "";
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
if(!ServletFileUpload.isMultipartContent(req)) {
System.out.println("表单的enctype属性不是multipart/form-data类型");
return;
}
fileUpload.setFileSizeMax(8*1024*1024);
fileUpload.setSizeMax(60*1024*1024);
try {
List<FileItem> parseRequest = fileUpload.parseRequest(req);
for (FileItem fileItem : parseRequest) {
if(!fileItem.isFormField()) {
String fileName =
fileItem.getName();
InputStream fileStream =
fileItem.getInputStream();
String parentDir =
this.getServletContext().getRealPath("/upload");
"D:\\eclipse-workspace-new\\myWish\\WebContent\\upload";
String realFileName =
UUID.randomUUID().toString()+"-"+fileName;
File file = new
File(parentDir,realFileName);
if(!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
OutputStream out = new
FileOutputStream(file);
byte[] buffer = new byte[1024];
int len = -1;
while((len =
fileStream.read(buffer))!=-1) {
out.write(buffer,0,
len);
}
System.out.println(parentDir);
System.out.println(realFileName);
imgfile = realFileName;
out.flush();
out.close();
fileStream.close();
}else {
String fieldName =
fileItem.getFieldName();
String fieldValue =
fileItem.getString("UTF-8");
System.out.println(fieldName+":"+fieldValue);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
req.setAttribute("igurl",imgfile);
req.getRequestDispatcher("/suc.jsp").forward(req,resp);
resp.sendRedirect(req.getContextPath()+"/suc.jsp");
{
sql1 = "update news set imgurl=\""+imgfile+"\" where
newsID=2";
flag = MysqlUtil.update(sql1);
}
}