FileUpload是Apache commons下面的一个子项目,用来实现Java项目下的文件上传功能,常见的文件上传还有SmartUpload,Servlet3.0,Struts2。

在这里我用的是commons- fileupload-1.2.1,下面就是一个简单实例,解析过程都写到代码中的注释上了,注释很详细

//创建磁盘文件项工厂DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory();//设置缓冲区的大小,如果文件的大小超过了缓冲区的大小,就会产生临时文件diskFileItemFactory.setSizeThreshold(1024*1024*3);//获得核心解析类ServletFileUpload fileUpload=new ServletFileUpload(diskFileItemFactory);//解决中文文件名上传乱码fileUpload.setHeaderEncoding("UTF-8");//解析request,返回list集合List<FileItem> list = fileUpload.parseRequest(request);//获得每个部分,将遍历的值存入到一个map集合中Map<String, String> map=new HashMap<>();//设置上传文件的文件名String fileName=null;for (FileItem fileItem : list) {//判断普通项和文件上传项if (fileItem.isFormField()) {//普通项String name=fileItem.getFieldName();String value=fileItem.getString("UTF-8");map.put(name, value);}else {//文件上传项//获得文件名fileName=fileItem.getName();//获得文件的输入流InputStream is=fileItem.getInputStream();//获得文件上传的路径String path=this.getServletContext().getRealPath("/products/1");OutputStream os=new FileOutputStream(path+"/"+fileName);int len=0;byte[] b=new byte[1024];while ((len=is.read(b))!=-1) {os.write(b, 0, len);}is.close();os.close();}

组件FileUpload使用FileItemFactory工厂创建新的文件项目。这个给了组件FileUpload很大的灵活性。这个工厂拥有怎样创建项目的最终控制权。工厂执行过程中上传项目文件的临时数据可以存储在内存中或硬盘上。这个依赖于上传项目的大小(即:数据的字节)。不过这种行为可以在你的应用程序中适当的自定制。

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

Java进阶之FileUpload完成上传相关推荐

  1. fileUpload 文件上传

    2019独角兽企业重金招聘Python工程师标准>>> 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础 ...

  2. 使用Fileupload组件上传文本和文件

    使用fileupload组件上传文本和文件 绪论 使用fileupload组件可以很方便的向服务器上传数据,包括表单数据以及二进制文件,比如pdf.图片视频等等.下面演示如何上传form表单数据以及二 ...

  3. java 预览zip_java压缩包上传,解压,预览(利用editor.md和Jstree实现)和下载

    java压缩包上传,解压,预览(利用editor.md和Jstree实现)和下载 实现功能:zip文件上传,后台自动解压,Jstree树目录(遍历文件),editor.md预览 采用Spring+Sp ...

  4. java 使用oos 进行数据上传和跨域

    java 使用oos 进行数据上传和跨域 导入依赖 <dependency><groupId>com.aliyun.oss</groupId><artifac ...

  5. web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)

    web /java 实现多种格式视频上传.转码.播放.下载 1.前言 前段时间一直在做一个生物资源共享平台,采用SSM框架技术,其中涉及一个模块,是关于视频资源的播放. 本来不是很大的问题,但是无奈用 ...

  6. java利用dropzone多文件上传

    DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库, 它是轻量级的,不依赖任何其他类库(如JQuery)并且高度可定制.文档官网https://www.dropzonejs.com/ ...

  7. java实现大文件分片上传

    java实现大文件分片上传 在项目中用到了大文件上传功能,最初从网上参考了一些代码来实现,但是最终的上传效果不是很好,速度比较慢. 之前的上传思路是: 前端利用webUploader分片大文件 后端接 ...

  8. ASP.NET Web程序设计——FileUpload文件上传控件

    FileUpload文件上传控件 主要功能:向指定的目录上传文件 控件包括:一个文本框 一个浏览按钮 属性 说明 HasFile 控件是否含有将要上传的文件 FileName 上传文件的文件名 Sav ...

  9. 【FFmpeg】java实现利用ffmpeg视频上传转码同时截取一帧保存为同名图片,并获取视频分辨率

    〇.前情提要 完成了视频上传,接下来是给上传的视频保存一张同名的jpg文件在同样文件夹中,并且获取到视频的分辨率. macOS Catalina 10.15.1 ffmpeg version 4.3. ...

  10. Java ftp实现文件的上传和下载ftp,sftp sun.net.ftp.FtpProtocolException:Welcome message: SSH-2.0-OpenSSH_5.1

    Java ftp实现文件的上传和下载 ftp,sftp 运行后发现很长时间没有反应,很久以后抛出如下异常:sun.net.ftp.FtpProtocolException:Welcome messag ...

最新文章

  1. python数据分析numpy_Python数据分析之numpy学习
  2. 守护进程的创建方法和步骤
  3. Golang垃圾回收机制(一)
  4. 数据库时间字段排序问题
  5. 仙逆网页服务器失败,全民仙逆闪退进不去了怎么办 闪退解决办法汇总
  6. 【软件工程】构件化业务模型CBM
  7. liteide无法自动补全代码问题解决【go: cannot find GOROOT directory: c:\go】
  8. java 53个关键字_java的保留(53个)关键字v11.docx
  9. 软件公司所犯的3种最严重的营销错误,你应该来看看
  10. WF不是工作流(后续)
  11. Spring的注解 @Bean用法
  12. extremecomponents -- 文档下载依赖使用
  13. 流水灯c语言代码switch,单片机C语言入门之六switch case语句流水灯
  14. 计算机cad标题栏快捷键,CAD标题快捷键
  15. 个人怎么申请微信公众号
  16. windows下如何用python控制打印机打印_巧用win32print来控制windows系统打印机并推送打印任务...
  17. Lingoes安装词典和语音库
  18. evplayer2可以多设备登录吗_EVPlayer2
  19. linux实现数据完整性检查工具 tripwire
  20. C++实现有理数类加减乘除

热门文章

  1. 利用昆仑通态触摸屏实现数据采集和逻辑判断的例子
  2. BC26常用术语和缩略词
  3. 慕课网vue播放器最新QQ音乐api
  4. cmd控制台执行php乱码,解决CMD控制台乱码问题
  5. 关于二叉树前中后序遍历的常见问题
  6. gis怎么提取水系_利用ArcGIS水文分析工具提取河网
  7. MapGIS制图学习(1)
  8. RPA机器人如何通过Usb Server远程连U盾
  9. macOS sierra 10.12 CORE Keygen系列注册机修复工具 CORE Patcher
  10. 论文常用实验数据收集整理