java spring框架文件上传_如何在不使用spring框架体系下实现多文件上传?

使用common-fileupload来做,使用httpservlet都可以。

以下是我自己做的,代码比较丑。(仅验证接受多文件能力,未保存文件,)

前端ajax请求代码略过,要求:post,Content-Type : multipart/form-data

导入jar包 common-fileupload(1.4)及common-io(2.2)

servlet如下

public class DemoServlet extends HttpServlet {

private FileItemFactory fileItemFactory;

@Override

public void init() throws ServletException {

super.init();

fileItemFactory = new DiskFileItemFactory();//初始化 为基于磁盘的文件项创建工厂

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//只有post请求才能传文件

ServletFileUpload sfu = new ServletFileUpload(fileItemFactory);

List parseRequest = null;

try {

parseRequest = sfu.parseRequest(req);

} catch (FileUploadException e) {

throw new ServletException(e);

}

for (FileItem fileItem : parseRequest) {

if (fileItem.isFormField()){

System.out.println(fileItem.getFieldName()+":"+fileItem.getString("UTF-8"));

}else{

System.out.println(fileItem.getFieldName()+":"+fileItem.getName());//字段名:文件名

}

}

}

}

web.xml

Archetype Created Web Application

upload

com.wilson404.DemoServlet

upload

/upload

测试请求:

curl "http://localhost:8080/demoFileUpload_war/upload" -H "Sec-Fetch-Mode: cors" -H "Origin: chrome-extension://aejoelaoggembcahagimdiliamlcdmfm" -H "___DHC-Request-Id: 16d7aea4d10" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryLHrhWpvupMp7iKkU" --data-binary ^"------WebKitFormBoundaryLHrhWpvupMp7iKkU^

Content-Disposition: form-data; name=^\^"a^\^"; filename=^\^"^冲^刺^题.rar^\^"^

Content-Type: application/octet-stream^

^

^

------WebKitFormBoundaryLHrhWpvupMp7iKkU^

Content-Disposition: form-data; name=^\^"a^\^"; filename=^\^"^必^看^题.rar^\^"^

Content-Type: application/octet-stream^

^

^

------WebKitFormBoundaryLHrhWpvupMp7iKkU--^

^" --compressed

控制台输出:

a:冲刺�?.rar

a:必看�?.rar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值