HTML5 FormData提交表单-HTML5文件上传-JavaServlet处理文件上传
来源:互联网 发布:美发教程软件下载 编辑:程序博客网 时间:2024/06/11 14:44
记录一下,供大家参考供自己备用,
原生开发爱好,框架什么的都是浮云!
index.html : 测试环境 google chrome
<!DOCTYPE html><html><head><meta charset="utf-8"><title>标题</title></head><body><input type = 'text' id="normal_stream" value="中文乱码不?" /><input type = 'file' id="binary_stream" accept = "image/jpg" multiple="multiple" /><input type = 'button' value="SUBMIT" onclick="save()" /><div id="show"></div><script>//console.log(JSON.parse('{"a":"123"}'));function save(){var normal_stream = document.getElementById("normal_stream").value;var files = document.getElementById("binary_stream").files;var arg={url : 'test.action',data:{normalStream:normal_stream},progress:function(e){//展示进度条 e.loaded/e.total;console.log(e.loaded/e.total);},fail:function(e){//失败处理console.log("fail:"+e);},success:function(json){//成功处理console.log(json);document.getElementById("show").innerHTML=json.normal+"本地文件名: "+json.fileName;}};for(var i=0;i<files.length;i++)arg.data["file-"+i] = files[i];upload(arg);}function upload(arg){var form = new FormData();for(var key in arg.data)form.append(key+"",arg.data[key]);xhr = new XMLHttpRequest();xhr.open("POST", arg.url, true);xhr.upload.onprogress = arg.progress;xhr.onreadystatechange=function(){if(xhr.readyState==4){if(xhr.status>=200&&xhr.status<300){//console.log(xhr.responseText);arg.success&&arg.success(JSON.parse(xhr.responseText));}else arg.fail&&arg.fail(xhr.status);}}xhr.send(form);}</script></body></html>
Myservlet.java:测试环境 Tomcat8
package com.test;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Collection;import javax.servlet.ServletException;import javax.servlet.annotation.MultipartConfig;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Part;@WebServlet("/test.action")@MultipartConfigpublic class MyServlet extends HttpServlet {private static final long serialVersionUID = 1L; public MyServlet() { super(); }protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/plain;charset=utf-8");String normalStream = new String (request.getParameter("normalStream").getBytes("ISO8859-1"),"UTF-8"); //二进制流上传需要转码normalStream = org.apache.commons.lang.StringEscapeUtils.escapeHtml(normalStream);//字符实体化 依赖commons-lang-2.6.jarString echoFileName="";File file=null;String path = getServletContext().getRealPath(".")+File.separator+"upload"+File.separator;//获取网络路径file = new File(path);if(!file.exists())file.mkdirs();Collection<Part> parts = request.getParts(); //谨防多文件上传System.out.println(parts.size());String fileName;InputStream fin = null;OutputStream fout = null;for(Part p : parts){fileName = p.getSubmittedFileName();//获取客户端文件名 , 就用这个文件名if(null == fileName)continue;echoFileName+=(echoFileName.isEmpty()?fileName:","+fileName);fin = p.getInputStream();file = new File(path+fileName);if(!file.exists())file.createNewFile();fout = new FileOutputStream(file);int x;while((x = fin.read())!=-1) fout.write(x);fout.flush();fin.close();fout.close();}response.getWriter().append("{\"normal\":\""+normalStream+"\",\"fileName\":\""+echoFileName+"\"}");response.getWriter().flush();}}
0 0
- HTML5 FormData提交表单-HTML5文件上传-JavaServlet处理文件上传
- HTML5 FormData多文件上传
- 上传文件 使用HTML5的FormData 提交表单和文件数据
- [HTML5][JSP]利用FormData对象完成表单的异步上传|文件上传|图文同时上传
- SpringBoot+Ajax文件上传+FormData表单提交
- html5+FormData 实现ajax文件上传
- ajax--html5上传文件file api +FormData
- HTML5 FormData 进行文件jquery ajax 上传
- 利用html5-formdata实现文件异步上传
- H5用FormData对象提交表单及上传文件
- 使用FormData来提交表单同时上传文件到服务端
- php 学习记录 formdata 文件上传 ajax html5
- HTML5上传文件(不含进度条):XHR2+FILE+FormData
- HTML5 jQuery+FormData 异步上传文件,带进度条
- HTML5 FormData对象 的上传文件的使用
- HTML5 jQuery+FormData 异步上传文件,带进度条
- HTML5 FormData 方法介绍以及实现文件上传
- HTML5 jQuery+FormData 异步上传文件,带进度条
- 关于Linux下的密码输入*的问题
- HashTable的实现原理
- [Caffe]1.环境准备和安装
- 洛谷 p1044 栈 对递归的感觉又加深了
- 经典排序算法之:归并排序
- HTML5 FormData提交表单-HTML5文件上传-JavaServlet处理文件上传
- 计算机组成原理之内存
- 11.3 NamedParameterJDBCTemplate、SimpleJDBCTemplate
- nginx配置https协议
- openresty 前端开发轻量级MVC框架封装二(渲染篇)
- Codeforces Round #386 (Div. 2) C. Tram 数学、讨论
- 分析分布式服务框架
- (找数字)HDU - 2141
- 【机器学习】线性回归