jsp两种文件上传方式@MultipartConfig 注解方式及普通常规方式

下面两种上传方式均支持文字文件单选多选批量上传处理

jsp代码:

<form id="uploadForm" enctype="multipart/form-data">
用户名称:<input type="text" name="userName"><br>
头像文件:<input type="file" id="myfile" name="myfile" multiple="true"><br>
BlogURL: <input type="text" name="UserBlogUrl"><br>
<input type="button" value="上传" onclick="doSubmit();">
</form>

servlet代码: 

后台接收文件方式一,该方式需要@MultipartConfig注解
后台接收文件方式二,该方式无需@MultipartConfig注解
/**
* 后台接收文件方式一,该方式需要@MultipartConfig注解 多文件用getParts,单个文件参考上面用getPart("myfile") myfile为file框name属性,支持单选或多选批量上传
*/
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("UTF-8");
String savePath = request.getServletContext().getRealPath("/myFiles");
Collection<Part> files = request.getParts();
for (Part part : files) {
// System.out.println("文件类型:" + part.getContentType());// MIME类型
// System.out.println("文件大小:" + part.getSize());// 文件大小 字节
// System.out.println("SubmittedFileName:" + part.getSubmittedFileName());
// System.out.println("Name:" + part.getName());
part.write(savePath + "/" + part.getSubmittedFileName());
response.getWriter().print("文件上传成功!");
}
/**
* 后台接收文件方式二,该方式无需@MultipartConfig注解 支持单个或多选批量上传
*/
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("UTF-8");
String savePath = request.getServletContext().getRealPath("/myFiles");
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List<FileItem> items = upload.parseRequest(new ServletRequestContext(request));
for (FileItem item : items) {
if (!item.isFormField()) {
// System.out.println("savePath = " + savePath);
// System.out.println(item.getName());
// System.out.println(item.getFieldName());
item.write(new File(savePath + "/" + item.getName()));
}
}
} catch (Exception e) {
e.printStackTrace();
}

 

posted @   IT情深  阅读(394)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示