java servlet ajax_Java:Servlet使用AJAX异步上传文件

该博客详细介绍了如何使用Java的Servlet和Apache Commons FileUpload库处理HTTP请求中的文件上传。通过设置字符编码防止乱码,创建DiskFileItemFactory和ServletFileUpload实例解析请求,然后迭代并处理每个文件项。如果文件项是表单字段则打印其名称和值,如果是上传文件则保存到服务器指定目录,并打印文件信息。如果未选择文件则给出相应提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

importjava.io.File;importjava.io.IOException;importjava.util.Iterator;importjava.util.List;importjavax.servlet.ServletConfig;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;

@SuppressWarnings("serial")publicclassUploaderextendsHttpServlet {privateServletContext sc;privateString uploadDir="downloads";

@Overridepublicvoidinit(ServletConfig config) {

sc=config.getServletContext();

}

@OverridepublicvoiddoGet(HttpServletRequest request, HttpServletResponse response)throwsIOException, ServletException {

doPost(request, response);

}

@OverridepublicvoiddoPost(HttpServletRequest request, HttpServletResponse response)throwsIOException, ServletException {

request.setCharacterEncoding("UTF-8");//防止中文乱码DiskFileItemFactory factory=newDiskFileItemFactory();

ServletFileUpload upload=newServletFileUpload(factory);try{

List items=upload.parseRequest(request);

Iterator itr=items.iterator();while(itr.hasNext()) {

FileItem item=(FileItem) itr.next();if(item.isFormField()) {

System.out.println("表单参数名:"+item.getFieldName()+",表单参数值:"+item.getString("UTF-8"));

}else{if(item.getName()!=null&&!item.getName().equals("")) {

System.out.println("上传文件的大小:"+item.getSize());

System.out.println("文件的类型:"+item.getContentType());

System.out.println("上传文件的名称:"+item.getName());//返回上传文件在客户端的完整路径名称File file=newFile(sc.getRealPath("/")+File.separatorChar+uploadDir+File.separatorChar+item.getName());

item.write(file);

}else{

response.getWriter().println("没有选择文件");

}

}

}

}catch(Exception e) {

e.printStackTrace();

response.getWriter().println("上传文件失败");

}

response.getWriter().println("Ok");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值