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();
}
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751820.html