1、HTML
======================================测试部分========================================== <img src="${pageContext.request.contextPath}/img/loading.gif" id="loading" style="display: none;"> <table class="tableForm"> <thead> <tr> <th>JQuery Ajax File Upload</th> </tr> </thead> <tbody> <tr> <td><input id="fileToUpload" type="file" size="45" name="fileToUpload" class="input"></td> </tr> </tbody> <tfoot> <tr> <td><button class="button" id="buttonUpload" onclick="ajaxFileUpload();">Upload</button></td> </tr> </tfoot> </table> <div id="result" style="margin-left:200px"></div> <!-- upload file end --> ================================================================================
2、js
<script src="${pageContext.request.contextPath}/js/jquery.js"></script> <script src="${pageContext.request.contextPath}/js/ajaxfileupload.js"></script> function ajaxFileUpload() { $("#loading").ajaxStart(function(){ $(this).show(); })//开始上传文件时显示一个图片 .ajaxComplete(function(){ $(this).hide(); });//文件上传完成将图片隐藏起来 $.ajaxFileUpload({ url : "../UploadPhoto", //submit to UploadFileServlet secureuri : false, fileElementId : 'fileToUpload', dataType : 'json', //or json xml whatever you like~ success : function(data, status) { alert('success data : ' + data.message); $('#test').html(data.message); if(typeof(data.error) != 'undefined') { if(data.error != '') { //alert(data.error); $('#test').html(data.message); }else { //alert(data.message); $('#test').html(data.message); } } }, error : function(data, status, e) { } }); }
3、servlet
package com.pmis.user.action; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; 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.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.json.JSONArray; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 上传文件 处理servlet */ public class UploadFileServlet extends HttpServlet { private static final long serialVersionUID = 1L; private static Logger logger = LoggerFactory.getLogger(UploadFileServlet.class); /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8"); // 判断提交过来的表单是否为文件上传菜单 request.setCharacterEncoding("utf-8"); response.setContentType("text/html"); // 设置字符编码为UTF-8, 这样支持汉字显示 response.setCharacterEncoding("UTF-8"); boolean isMultipart = ServletFileUpload.isMultipartContent(request); PrintWriter writer = response.getWriter(); JSONArray json = new JSONArray(); String result = ""; if (isMultipart) { // 构造一个文件上传处理对象 FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); Iterator items; try { // 解析表单中提交的所有文件内容 items = upload.parseRequest(request).iterator(); while (items.hasNext()) { FileItem item = (FileItem) items.next(); if (!item.isFormField()) { // 取出上传文件的文件名称 String name = item.getName(); // 取得上传文件以后的存储路径 String fileName = name.substring(name.lastIndexOf('\\') + 1, name.length()); // 上传文件以后的存储路径 String saveDir = this.getServletContext().getRealPath("/upload/"); if (!(new File(saveDir).isDirectory())) { new File(saveDir).mkdir(); } String path = saveDir + File.separatorChar + fileName; result = File.separatorChar + fileName; // 上传文件 File uploaderFile = new File(path); long size = item.getSize(); if ("".equals(path) || size == 0) { result = "{message:'请选择上传文件'}"; return; } String t_name = path.substring(path.lastIndexOf("\\") + 1); // 得到文件的扩展名(无扩展名时将得到全名) String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1).toLowerCase(); if(!"jpg".endsWith(t_ext) && !"jpeg".endsWith(t_ext)) { result = "{message:'请选择上传jpg/jpeg格式图片'}"; return; } item.write(uploaderFile); result = "{message:'ok',url:'upload/" + fileName + "'}"; } } } catch (Exception e) { e.printStackTrace(); } finally { //writer.write(json.toString()); writer.write(result); writer.close(); } } } }
相关推荐
在Web开发中,jQuery AJAX File Upload 是一个常见且实用的技术,它允许用户在不刷新整个页面的情况下上传文件。这一技术极大地提升了用户体验,因为用户可以一边浏览网页,一边进行文件上传,提高了交互性和效率。...
总结来说,`jQuery ajax file upload`是通过`ajaxFileUpload`插件实现的一种无刷新的文件上传方式,它提高了用户体验,并且提供了丰富的自定义选项和回调机制,适用于各种Web应用的文件上传需求。要正确使用,需要...
### jQuery Ajax File Upload技术点 1. **项目结构**:一个典型的Web项目应该包含前端页面和服务端代码。在这里,项目结构包含了两个主要的ASPX页面,Default.aspx作为默认页面,而Upload.aspx用于处理文件上传逻辑...
**jQuery AjaxUpload应用详解** AjaxUpload是一款非常实用的JavaScript插件,它允许用户在无需刷新页面的情况下上传文件,极大地提升了用户体验。在这个详细的知识点解析中,我们将深入理解AjaxUpload的工作原理,...
"jQuery Ajax File Upload"是Ajax技术在上传文件场景中的应用,它允许用户在不离开当前页面的情况下完成文件上传操作,既高效又便捷。 **jQuery库的引入** `jquery.js`是jQuery库的核心文件,它是JavaScript的一个...
在上传过程中,会触发一系列的事件,如fileuploadstart、fileuploadprogress、fileuploadsuccess等,开发者可以绑定这些事件来执行相应的逻辑。 三、集成与配置 要将jQuery-File-Upload引入项目,首先需要在HTML中...
《jQuery-File-Upload插件深度解析与应用实践》 jQuery-File-Upload是一款功能强大的JavaScript文件上传组件,它提供了一种优雅的方式来处理文件上传,支持多文件选择、进度条显示、图片预览等特性,使得文件上传变...
**jQuery插件AjaxUpload简介** AjaxUpload是一款基于jQuery的插件,它允许用户在无需刷新页面的情况下上传文件。这个插件极大地提升了用户体验,因为它能够实现在后台处理文件上传,同时还可以自定义各种反馈机制,...
《jQuery-File-Upload在ASP.NET MVC中的应用详解》 在Web开发中,文件上传功能是必不可少的一部分,尤其是在用户需要提交图片、文档等文件时。jQuery-File-Upload是一款广泛使用的前端文件上传插件,它提供了优雅的...
**jQuery Upload AJAX方式详解** 在Web开发中,文件上传是一个常见的功能,传统的文件上传通常需要刷新整个页面,用户体验较差。随着Ajax技术的发展,无刷新上传文件成为可能,jQuery结合Ajax提供了一种优雅的解决...
`jQuery Large File Upload` 提供了一种解决方案,它允许用户通过jQuery库实现高效且用户友好的大文件上传功能。这个项目尤其适用于那些希望在PHP环境中集成文件上传功能的开发者,比如用于下载、文章、CMS(内容...
jQuery File Upload是一款强大的基于jQuery的文件上传插件,它提供了多文件选择、进度条显示、预览、上传取消以及删除等功能。这款插件利用HTML5技术,为现代浏览器提供了先进的文件上传体验,同时通过优雅降级的...
jquery官方插件ajax file upload使用的实例,用asp.net做的服务器端。具体说明请看这里http://www.cnblogs.com/luq885/archive/2007/11/15/959749.html
《jQuery File Upload详解》 在Web开发中,文件上传功能是一项常见的需求,而jQuery File Upload则是实现这一功能的一款强大插件。本篇文章将深入探讨jQuery File Upload的核心特性、工作原理以及如何在实际项目中...
《jQuery File Upload:Java 实例详解》 在Web开发中,文件上传功能是不可或缺的一部分,jQuery File Upload 是一个强大且用户友好的文件上传插件,它支持多文件选择、进度条显示、预览功能以及异步上传。这个名为 ...
jQuery File Upload是一款功能强大的文件上传插件,专为前端开发者设计,用于在Web应用程序中实现高效、用户友好的多文件上传功能。这个插件的版本是v10.32.0,它提供了丰富的特性,使得文件上传变得更加简单且可控...
jQuery File Upload利用HTML5的File API,通过AJAX方式实现文件的分块上传,以应对大文件上传时的性能问题。同时,它使用FormData对象存储文件数据,通过XMLHttpRequest的send方法发送到服务器。在上传过程中,插件...