扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
如何在Java中利用FileUpload实现一个文件上传功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
具体方法如下:
//创建磁盘文件项工厂 DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory(); //设置缓冲区的大小,如果文件的大小超过了缓冲区的大小,就会产生临时文件 diskFileItemFactory.setSizeThreshold(1024*1024*3); //获得核心解析类 ServletFileUpload fileUpload=new ServletFileUpload(diskFileItemFactory); //解决中文文件名上传乱码 fileUpload.setHeaderEncoding("UTF-8"); //解析request,返回list集合 Listlist = fileUpload.parseRequest(request); //获得每个部分,将遍历的值存入到一个map集合中 Map 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(); }
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流