Uploadify是JQuery的一个上传插件,实现的效果非常不错,进度显示或者速度显示都可以!
官方 : http://www.uploadify.com/
同时。。我已经使用最新版写了个。大家可以看这么的这个。。
文章: JQuery上传插件Uploadify并传参数(二)
也可以去看看官网上面的 dome 下载包...API 等
下面是我开发过程遇到的一些问题总结:
1、上传失败 IO ERROR ------测试是否是 servlet 等配置或者关注flash的版本
2、前台传参中文乱码 -----------这个要根据应用服务器不同可能不同吧...反正只要我们的 界面、界面传参以及后台接收的编码设置一致应该就没上面问题..反正这个问题好解决的...
3、批量上传的时候,只有第一个附件上传的时候可以接收到前台传来的name参数,而后面的参数都为null-------设置'simUploadLimit' : 1, // 一次同步上传的文件数目为 1,问题解决...当初这个问题可是难了我好久!fuck
嘿嘿....下面我贴出代码
jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%
String path = request.getContextPath();
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>QQ:609865047 --- 妞见妞爱</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<link href="js/uploadify.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript" src="js/jquery.uploadify.v2.1.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#uploadify").uploadify({
'uploader' : 'js/uploadify.swf',
'script' : 'scripts/uploadify',//servlet的路径或者.jsp 这是访问servlet 'scripts/uploadif'
'method' :'GET', //如果要传参数,就必须改为GET
'cancelImg' : 'js/cancel.png',
'folder' : 'uploads', //要上传到的服务器路径,
'queueID' : 'fileQueue',
'auto' : false, //选定文件后是否自动上传,默认false
'multi' : true, //是否允许同时上传多文件,默认false
'simUploadLimit' : 1, //一次同步上传的文件数目
'sizeLimit' : 19871202, //设置单个文件大小限制,单位为byte
'queueSizeLimit' : 5, //限制在一次队列中的次数(可选定几个文件)。默认值= 999,而一次可传几个文件有 simUploadLimit属性决定。
'fileDesc' : '支持格式:jpg或gif', //如果配置了以下的'fileExt'属性,那么这个属性是必须的
'fileExt' : '*.jpg;*.gif',//允许的格式
'scriptData' :{'name':$('#name').val()}, // 多个参数用逗号隔开 'name':$('#name').val(),'num':$('#num').val(),'ttl':$('#ttl').val()
onComplete: function (event, queueID, fileObj, response, data) {
var value = response ;
alert("文件:" + fileObj.name + "上传成功");
},
onError: function(event, queueID, fileObj) {
alert("文件:" + fileObj.name + "上传失败");
},
onCancel: function(event, queueID, fileObj){
alert("取消了" + fileObj.name);
}
});
});
function uploasFile(){
//校验
var name=document.getElementById("name").value;
if(name.replace(/\s/g,'') == ''){
alert("名称不能为空!");
return false;
}
//设置 scriptData 的参数
$('#uploadify').uploadifySettings('scriptData',{'name':$('#name').val()});
//上传
jQuery('#uploadify').uploadifyUpload()
}
</script>
名称:<input type="text" id="name" name="name" value="妞见妞爱" >
<div id="fileQueue"></div>
<input type="file" name="uploadify" id="uploadify" />
<p>
<a href="javascript:uploasFile()">开始上传</a>
<a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">取消所有上传</a>
</p>
</body>
</html>
Uploadify.java
package com;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
public class Uploadify extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* 实现多文件的同时上传
*/
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//设置接收的编码格式
request.setCharacterEncoding("UTF-8");
Date date = new Date();//获取当前时间
SimpleDateFormat sdfFileName = new SimpleDateFormat("yyyyMMddHHmmss");
SimpleDateFormat sdfFolder = new SimpleDateFormat("yyMM");
String newfileName = sdfFileName.format(date);//文件名称
String fileRealPath = "";//文件存放真实地址
String fileRealResistPath = "";//文件存放真实相对路径
//名称 界面编码 必须 和request 保存一致..否则乱码
String name = request.getParameter("name");
String firstFileName="";
// 获得容器中上传文件夹所在的物理路径
String savePath = this.getServletConfig().getServletContext().getRealPath("/") + "uploads\\" + newfileName +"\\";
System.out.println("路径" + savePath);
File file = new File(savePath);
if (!file.isDirectory()) {
file.mkdir();
}
try {
DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setHeaderEncoding("UTF-8");
// 获取多个上传文件
List fileList = fileList = upload.parseRequest(request);
// 遍历上传文件写入磁盘
Iterator it = fileList.iterator();
while (it.hasNext()) {
FileItem item = (FileItem) it.next();
// 如果item是文件上传表单域
// 获得文件名及路径
String fileName = item.getName();
if (fileName != null) {
firstFileName=item.getName().substring(item.getName().lastIndexOf("\\")+1);
String formatName = firstFileName.substring(firstFileName.lastIndexOf("."));//获取文件后缀名
fileRealPath = savePath + newfileName+ formatName;//文件存放真实地址
BufferedInputStream in = new BufferedInputStream(item.getInputStream());// 获得文件输入流
BufferedOutputStream outStream = new BufferedOutputStream(new FileOutputStream(new File(fileRealPath)));// 获得文件输出流
Streams.copy(in, outStream, true);// 开始把文件写到你指定的上传文件夹
//上传成功,则插入数据库
if (new File(fileRealPath).exists()) {
//虚拟路径赋值
fileRealResistPath=sdfFolder.format(date)+"/"+fileRealPath.substring(fileRealPath.lastIndexOf("\\")+1);
//保存到数据库
System.out.println("保存到数据库:");
System.out.println("name:"+name);
System.out.println("虚拟路径:"+fileRealResistPath);
}
}
}
} catch (FileUploadException ex) {
ex.printStackTrace();
System.out.println("没有上传文件");
return;
}
response.getWriter().write("1");
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
web.xml
<servlet>
<servlet-name>Uploadify</servlet-name>
<servlet-class>com.Uploadify</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Uploadify</servlet-name>
<url-pattern>/scripts/uploadify</url-pattern>
</servlet-mapping>
效果图片看及 dome 见附件~~~~~~~~~~~
我也是根据 dada_fangfang 大哥 http://dada-fangfang.iteye.com/blog/865177 文章改进来的....
这边有 struts 和 springmvc 的写法...但是..他那边就纯粹的上传文件...如果还需要传参数的话!
我的这篇就 希望对大家有所帮助!
效果图:
图1:
图2:
- 大小: 8.2 KB
- 大小: 24.3 KB
分享到:
相关推荐
这篇博客文章“JQuery批量上传插件Uploadify并传参数(二)”可能深入探讨了如何在使用Uploadify时传递额外参数,以增强其功能和定制性。 Uploadify是一款基于jQuery的JavaScript库,它允许用户通过拖放或选择多个...
总之,jQuery上传插件Uploadify是一个强大且灵活的工具,可以帮助开发者轻松地实现在网页上的文件上传功能,通过定制其参数和事件,可以满足各种项目需求。但随着技术的发展,考虑向HTML5的File API迁移也是必要的,...
**jQuery上传插件Uploadify详解** Uploadify是一款基于...总之,jQuery上传插件Uploadify是提高Web应用中文件上传体验的利器,通过其丰富的参数设置和事件处理,开发者可以定制出满足各种需求的文件上传解决方案。
在Web开发中,文件上传功能是一项常见的需求,而jQuery.uploadify.js是一款高效且用户友好的文件上传插件,尤其对于需要兼容多种浏览器的项目来说,它提供了一种优雅的解决方案。这款插件原本不支持IE10,但在经过...
jQuery Uploadify是一款广泛使用的文件上传插件,它极大地简化了在Web应用中实现多文件上传的功能。这个插件的主要版本是v3.0.0,它提供了丰富的自定义选项和良好的用户体验。在本文中,我们将深入探讨Uploadify的...
Uploadify是一款基于JavaScript和Flash的文件上传插件,它与jQuery库紧密结合,为Web应用程序提供了简单易用且功能丰富的文件上传功能。在C#后端环境中,Uploadify可以帮助开发者实现多文件同时上传,大大提升了用户...
在.NET开发中,文件上传是一项常见的任务,而jQuery Uploadify插件则为这一过程提供了便捷的解决方案。Uploadify是一款基于JavaScript和Flash的文件上传组件,它允许用户通过拖拽或选择文件的方式,实现多文件同时...
《JQuery上传插件Uploadify的全面解析与应用》 在Web开发中,文件上传功能是必不可少的一部分,而JQuery插件Uploadify则提供了一种优雅、高效的解决方案。Uploadify是一款基于JQuery的插件,它支持多文件上传、...
本实例将探讨如何利用jQuery上传插件Uploadify与PHP技术来构建一个强大的文件上传系统。Uploadify是一款广泛使用的前端插件,它使得文件上传过程更加直观、用户友好,并且支持批量上传和自定义样式,极大地提升了...
Uploadify是由Aaron Balog开发的一款基于jQuery的文件上传插件。它利用HTML5的File API和Flash技术,提供了丰富的功能和自定义选项,使得文件上传变得简单易用。Uploadify支持异步上传,用户可以在不刷新页面的情况...
jQuery Uploadify 是一款基于jQuery的文件上传插件,它提供了用户友好的界面,支持多文件选择、上传进度显示以及批量上传等功能。这个插件适用于那些希望在网页中实现复杂文件上传功能的开发者。Uploadify 通过Flash...
`jQuery Uploadify` 是一个基于 jQuery 的前端文件上传插件,它允许用户通过浏览器实现多文件选择、上传进度显示、上传失败重试等高级功能。这个插件在Web开发中非常流行,因为它提供了丰富的自定义选项和良好的用户...
jQuery Uploadify是一款强大的、无刷新的文件上传插件,它使得用户在网页上进行文件上传时无需等待页面刷新,极大地提升了用户体验。Uploadify 3.2版本是其发展过程中的一个重要里程碑,提供了许多改进和新特性。 *...
### jQuery上传插件Uploadify 3.2中文详细参考手册 #### 一、概述 Uploadify是一款基于jQuery的文件上传插件,它提供了一个简单易用的接口来处理文件上传功能,尤其适用于需要多文件上传、文件预览等功能的场景。...
在Web开发中,上传功能是不可或缺的一部分,而jQuery.uploadify插件以其强大的功能和易用性深受开发者喜爱。这个"jquery.uploadify-v2.1.4[修正版]"正是基于官方的v2.1.4版本进行了一次关键的优化,特别针对中文支持...
Uploadify 是一款基于 jQuery 的文件上传插件,它支持多文件选择、上传进度显示等功能,为用户提供了良好的交互体验。在 ASP.NET 环境中使用 Uploadify,我们需要完成以下步骤: 1. **安装和引入资源**:首先,下载...
Uploadify是一款基于JQuery的上传插件,能够实现高效且美观的文件上传功能。它为开发者提供了一个易于使用的API,使得集成文件上传功能变得简单便捷。对于初学者而言,Uploadify提供了详细的配置选项和事件,使得...