html5+java如何实现大文件上传
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍html5+java如何实现大文件上传,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
千家信息网最后更新 2025年02月01日html5+java如何实现大文件上传
这篇文章主要介绍html5+java如何实现大文件上传,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
package com.yjm.up;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;public class UpServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全 String savePath = this.getServletContext().getRealPath( "/WEB-INF/upload"); File file = new File(savePath); System.out.println("test。。。。"); // 判断上传文件的保存目录是否存在 if (!file.exists() && !file.isDirectory()) { System.out.println(savePath + "目录不存在,需要创建"); // 创建目录 file.mkdir(); } // 消息提示 String message = ""; try { // 使用Apache文件上传组件处理文件上传步骤: // 1、创建一个DiskFileItemFactory工厂 DiskFileItemFactory factory = new DiskFileItemFactory(); // 2、创建一个文件上传解析器 ServletFileUpload upload = new ServletFileUpload(factory); // 解决上传文件名的中文乱码 upload.setHeaderEncoding("UTF-8"); // 3、判断提交上来的数据是否是上传表单的数据 if (!ServletFileUpload.isMultipartContent(request)) { // 按照传统方式获取数据 return; } // 4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List集合,每一个FileItem对应一个Form表单的输入项 List list = upload.parseRequest(request); for (FileItem item : list) { // 如果fileitem中封装的是普通输入项的数据 if (item.isFormField()) { String name = item.getFieldName(); // 解决普通输入项的数据的中文乱码问题 String value = item.getString("UTF-8"); // value = new String(value.getBytes("iso8859-1"),"UTF-8"); System.out.println(name + "=" + value); } else {// 如果fileitem中封装的是上传文件 // 得到上传的文件名称, String filename = item.getName(); System.out.println(filename); if (filename == null || filename.trim().equals("")) { continue; } // 注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: // c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt // 处理获取到的上传文件的文件名的路径部分,只保留文件名部分 filename = filename .substring(filename.lastIndexOf("\\") + 1); // 获取item中的上传文件的输入流 InputStream in = item.getInputStream(); // 创建一个文件输出流 FileOutputStream out = new FileOutputStream(savePath + "\\" + filename); // 创建一个缓冲区 byte buffer[] = new byte[1024 * 1024]; // 判断输入流中的数据是否已经读完的标识 int len = 0; // 循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据 while ((len = in.read(buffer)) > 0) { // 使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" // + filename)当中 out.write(buffer, 0, len); } out.flush(); // 关闭输入流 in.close(); // 关闭输出流 out.close(); // 删除处理文件上传时生成的临时文件 item.delete(); message = "文件上传成功!"; } } } catch (Exception e) { message = "文件上传失败!"; e.printStackTrace(); } request.setAttribute("message", message); request.getRequestDispatcher("/message.jsp").forward(request, response); }}
用到的java 包 是 超过1G上传
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
//xhr.setRequestHeader("Content-Type","application/octet-stream;charset=UTF-8"); 这不能添加
以上是"html5+java如何实现大文件上传"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
文件
数据
输入
文件名
目录
缓冲区
UTF-8
处理
缓冲
输出
普通
乱码
内容
浏览器
篇文章
表单
路径
部分
中文
封装
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
算法岗和软件开发岗有啥区别
南京怎么学习软件开发
国家的最新网络安全制度条例
互联网科技是技术起家吗
影响软件开发进度的因素
检察机关网络安全保障方案
计算机网络技术行情
视频课程敏捷软件开发
模拟山羊手机版怎么开服务器
共建网络安全成功案例
sql一次删除百万条数据库
3306端口打不开数据库
网络安全可以保障网络数据的
数据量太多用什么数据库好
天穹宝可梦服务器要加载多久
电脑编程是不是软件开发
网络安全宣传周广元
中兴无线软件开发知乎
网络安全八字
用友u8管理服务器怎样启动
怎么查外文文献数据库
软件编程网络技术培训
vb软件开发公司
360p4 共享服务器
组织胚胎学的数据库
在数据库中聚集索引的关键字是
网络服务器检测报告
什么软件提高网络安全
贵州省党建数据库
大学专业网络技术