HTML5文件上传
来源:互联网 发布:apache ab url带参数 编辑:程序博客网 时间:2024/06/05 07:24
利用HTML5的新特性进行处理
1、所需jar包:commons-fileupload-1.2.2.jar 、commons-io-2.1.jar
2、环境:后台Java、前台动态语言JSP
3、运行环境:浏览器支持HTML 5新功能
1、添加几个需求元素:
<!-- 文件上传实现 --><input id="sampleFile" name="sampleFile" type="file" onchange="fileSelected();" /> <br /><div id="fileName"></div><div id="fileSize"></div><div id="fileType"></div><div id="progressNumber"></div><input id="uploadBtn" type="button" value="Ajax Submit" onClick="performAjaxSubmit();"></input><div id="previewPic"></div><!-- 图片文件的预览 -->
2、编写脚本:
<script type="text/javascript"> function fileSelected() { var file = document.getElementById('sampleFile').files[0]; if (file) { var fileSize = 0; if (file.size > 1024 * 1024) fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB'; else fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB'; document.getElementById('fileName').innerHTML = 'Name: ' + file.name; document.getElementById('fileSize').innerHTML = 'Size: ' + fileSize; document.getElementById('fileType').innerHTML = 'Type: ' + file.type; //fileType必须没有才行 } } function uploadProgress(evt) { if (evt.lengthComputable) { var percentComplete = Math.round(evt.loaded * 100 / evt.total); document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%'; } else { document.getElementById('progressNumber').innerHTML = 'unable to compute'; } } function performAjaxSubmit() { var sampleFile = document.getElementById("sampleFile").files[0]; var formdata = new FormData(); formdata.append("sampleFile", sampleFile); var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", uploadProgress, false); // xhr.addEventListener("load", uploadComplete, false); // xhr.addEventListener("error", uploadFailed, false); // xhr.addEventListener("abort", uploadCanceled, false); xhr.open("POST","${ctx}/user/file.action?method:uploadFile=xx", true); xhr.send(formdata); xhr.onload = function(e) { if (this.status == 200) { eval("var json="+this.responseText); //将图片显示出来 $("#previewPic").append("<img src='${ctx}/user/file.action?method:previewPic&fileId="+json.fileId+"' ><img>"); } }; }</script>
估计大家对于var formdata = new FormData();这段代码比较疑惑,这是HTML5新添的对象
3、后台fileAction处理函数:
public void uploadFile() throws ServletException, IOException {String status = ""; String serverRealPath = "";Long fileId = 0l;HttpServletResponse response = ServletActionContext.getResponse();HttpServletRequest request = ServletActionContext.getRequest();String saveDirectory = "D:\\njupt\\blog\\";File mir = new File(saveDirectory);if(!mir.exists()) mir.mkdir();try {DiskFileItemFactory dtf = new DiskFileItemFactory(); //磁盘对象ServletFileUpload upload = new ServletFileUpload(dtf);//声明解析request的对象List<FileItem> items = upload.parseRequest(request);for (FileItem item : items) {String fileName = item.getName();InputStream content = item.getInputStream();String tempName = System.currentTimeMillis() + ".blog.file";status = "upload Success!";serverRealPath = f.getAbsolutePath();fileId = upf.getId();}} catch (FileUploadException e) { throw new ServletException("Parsing file upload failed.", e); }response.setContentType("text/html");response.setCharacterEncoding("UTF-8");response.getWriter().print("{status:'"+status+"',path:'"+serverRealPath+"',fileId:"+fileId+"}");}
4、运行效果:
- html5图片上传【文件上传】
- HTML5文件上传
- html5 java 文件上传
- HTML5 文件上传
- HTML5 异步上传文件
- html5 进度条上传文件
- html5---上传文件
- html5 文件上传预览
- HTML5 文件上传示例
- html5 自定义文件上传
- html5异步上传文件
- html5 ajax文件上传
- HTML5文件上传
- html5 自定义文件上传
- html5 ajax文件上传
- html5多文件上传
- html5文件-上传
- Html5 文件上传
- 编译过程简介
- 内存操作函数
- oracle彻底删除以及遇到问题解决
- Installing a USB Driver
- 转载:读《丰田模式》,看中企流程、质量和加班
- HTML5文件上传
- 一次代码Review的总结
- STM32因为BOOT和时钟造成的异常的调试过程
- JQUERY
- PL/SQL developer配置
- java学习day02
- pthread_create 的返回值
- 一个简单的个模板类,搞定ccbi文件的加载
- 为什么要使用MONO