request学习---文件上传
来源:互联网 发布:淘宝 延长收货使用规则 编辑:程序博客网 时间:2024/05/16 15:52
需求:利用网页表单提交文件,上传至服务器。
前端页面表单 enctype=”multipart/form-data”
<form action="upload" method="post" enctype="multipart/form-data"> 上传文件:<input type="file" name="up1"/><br/><br/> 文件描述:<input type="text" name="desc"/><br/><br/> 上传文件:<input type="file" name="up1"/><br/><br/> 文件描述:<input type="text" name="desc"/><br/><br/> <input type="submit" value="提交"/> </form>
后台服务器:通过request流的方式接受过来看看。
我上传的文件如下,文件名:a.txt
通过request收到后台,输出来
解析代码
InputStream in = request.getInputStream(); BufferedReader br = new BufferedReader( new InputStreamReader(in)); String line=null; while( (line=br.readLine())!=null){ System.out.println(line); }
输出内容
只要把这个内容解析出来,在通过流生成文件,就完成了文件上传。
可是———–我不会。
只能调用别人的包了。这两个包(导入lib目录下)
剩下的代码就变成这样的啦。 我已经写好了的啦
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //在POST2方式提交下只能设置文件名字的编码 request.setCharacterEncoding("utf-8"); //创建一个用来存储上传临时文件的类(不创建Tomcat会采用默认的) // 参数:缓存文件大小,路径; 缓存文件达到5*1024B时就会刷缓存 FileItemFactory f = new DiskFileItemFactory(1024*5, new File("E/a")); //文件上传的解析器 ServletFileUpload upload = new ServletFileUpload(f); //设置单个文件的最大文件大小:3M upload.setFileSizeMax(1024*1024*3); //设置所有文件的容量:30M upload.setSizeMax(1024*1024*3*10); try { List<FileItem> list = upload.parseRequest(request); //表单提交两种类型:POST1普通表单(信息)提交、POST2文件上传提交; for(FileItem fi:list){ //fi.isFormField():true---POST1; false---POST2 if(fi.isFormField()){ //拿到POST1方式提交的内容 String str = fi.getString("utf-8"); System.out.println("文件描述:"+str); }else{ //拿到上传的文件名 String name = fi.getName(); if(fi.getSize()==0){ continue; } String ext = name.substring(name.lastIndexOf('.')); String fileName = UUID.randomUUID().toString().replaceAll("-", "")+ext; System.out.println("文件名:"+fileName); //拿到上传文件的流:文件内容导入流 InputStream in = fi.getInputStream(); //拿到文件存放的位置 String path = getServletContext().getRealPath("/uploads"); //再通过工具类帮忙把文件内容考到知道路径 FileUtils.copyInputStreamToFile(in, new File(path+"/"+fileName)); } } } catch (FileUploadException e) { e.printStackTrace(); } }
阅读全文
0 0
- request学习---文件上传
- struts 上传文件request
- python request上传文件
- Laravel框架学习(Request请求数据、Cookie、文件上传)
- Laravel框架学习(Request请求数据、Cookie、文件上传)
- 文件上传 request 头信息
- eclipse 文件上传 获取request.getRealPath() 出错!
- Springmvc上传文件,request对象转换错误
- Springmvc上传文件,request对象转换错误
- java文件上传(解析request流)
- django 上传文件出现bad request(400)
- Springmvc上传文件request转换异常
- Asp.net上传文件Request.files获取不到文件
- 【文件操作】Http的request上传文件获取文件名称
- PHP上传文件学习
- 文件的上传学习
- 学习PHP文件上传
- SpringMVC学习---------文件上传
- 企业微信开发建议
- 判断一个数组为[]或者对象是{}
- react学习笔记
- 添加开机启动脚本
- 添加开机启动脚本
- request学习---文件上传
- Git诞生与简单发展史
- Object.assign 深层次合并
- Linux配置java环境变量
- Activity四种启动模式
- 使用WebUploader跨域上传图片,用SpringMVC实现服务器端
- 使用e.printStackTrace(PrintWriter s)对异常信息处理
- [LeetCode]633. Sum of Square Numbers
- webstorm中LESS环境的搭建