- 浏览: 3010532 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (893)
- android (110)
- iphone (198)
- java (79)
- JavaScript手册-目录 (9)
- JavaScript手册-Array (19)
- JavaScript手册-Boolean (5)
- JavaScript手册-Date (50)
- JavaScript手册-Math (30)
- JavaScript手册-Number (14)
- JavaScript手册-RegExp (7)
- JavaScript手册-String (38)
- JavaScript手册-全局函数 (8)
- JavaScript实用脚本 (7)
- Others (21)
- java-jpcap (7)
- java-thread (1)
- ibm文章 (3)
- classloader (2)
- java-filter (2)
- 运行环境 (33)
- java-正则 (2)
- oracle (1)
- linux-shell (26)
- wap (1)
- sqlite (3)
- wow (1)
- jvm (1)
- git (5)
- unity3d (29)
- iap (2)
- mysql (23)
- nginx (14)
- tomcat (9)
- apache (2)
- php (1)
- ubuntu (40)
- rsa (1)
- golang (21)
- appstore (5)
- sftp (2)
- log4j (2)
- netty (18)
- 测试工具 (6)
- memcache (5)
- 设计模式 (1)
- centos (8)
- google_iab (5)
- iOS专题 (4)
- mac (10)
- 安装配置帮助手册 (2)
- im4java_graphicsmagick (5)
- inotify-tools (1)
- erlang (6)
- 微信支付 (1)
- redis (8)
- RabbitMQ (5)
最新评论
-
heng123:
Netty视频教程https://www.douban.com ...
netty4.0.23 初学的demo -
maotou1988:
使用Netty进行Android与Server端通信实现文字发 ...
netty4.0.23 初学的demo -
码革裹尸:
非常感谢,正好用上
android 呼入电话的监听(来电监听) -
rigou:
提示的/222.177.4.242 无法链接到ip地址,是什 ...
通过 itms:services://? 在线安装ipa ,跨过app-store -
duwanbo:
GridView与数据绑定
★★★ 本篇为原创,需要引用转载的朋友请注明:《 http://stephen830.iteye.com/blog/255583 》 谢谢支持! ★★★
功能完全支持ie和firefox浏览器!同样也支持safari浏览器!
一般的WEB方式文件上传只能一个一个的进行上传,在某些应用上就显得很不人性化,客户们都希望能够1次选择很多文件,然后让系统把选择的文件全部上传。
这里,就将针对这个问题提出一个比较完美的解决方案,利用的技术主要有2个:Flash 和 smartupload。Flash 能够让客户一次选择多个文件,而smartupload负责将选择的文件上传到服务器上。
有些朋友看到这里,就知道了,其实就是swfupload方法,具体信息可以访问swfupload官方网站:http://www.swfupload.org/
让我们先来看看客户端的界面效果图。(多选文件,批量上传,上传进度显示)
要做到图中的效果,其实很方便,看完下面的描述,相信大家都可以实现上图中的效果了。
说明:swfupload2中通过一个png图片与flash插件进行关联,可以修改images下的png图片来(如上图中的[选择文件]图片)自定义显示自己想要的图片样子(不要修改图片名字和格式)。
如果你用的不是java环境,不要紧,只要稍作修改,同样可以使用在其他的环境中。
第1步,要进行下面的过程,必须先准备好Flash插件和smartupload。
Flash插件:相信大家的浏览器早已经安装过了,请检查版本,尽量使用最新的的flash插件。
smartupload:大家可以去看看我的另一篇文章 [上传下载组件SmartUpload使用方法] http://stephen830.iteye.com/blog/255010 里面详细讲述了使用方法,并且提供了具体java类的下载。请先熟悉smartupload,然后再开始下面的步骤。
第2步,前台部分准备客户操作的WEB界面,如下[UploadFileExample.jsp、UploadFileExampleSubmit.jsp]
(关于参数 upload_url: "<%=uploadUrl.toString()%>",
要注意提交文件路径,最好用http://.../UploadFileExample.jsp格式的完整路径,即像我例子中写的那样)
UploadFileExample.jsp
UploadFileExample.jsp对应的处理页面 --> UploadFileExampleSubmit.jsp
(1)请确保已经看完我的另一篇文章(上传下载组件SmartUpload使用方法 http://stephen830.iteye.com/admin/blogs/255010),先搞好这个才能开始下面的操作
(2)写一个对应上传方法类,com.soft4j.bo.PhotoMgr.java,其中的方法就是文章下面提到的public static String fileUpload(SmartUpload su,PageContext pageContext) throws Exception {...}
这2点弄好了,ok,可以继续。(如果没有准备java文件,下面的UploadFileExampleSubmit.jsp会报错)
注意在(UploadFileExampleSubmit.jsp)中:上传成功后必须返回“successed”,失败的话则返回失败的原因。
第3步 准备后台的文件上传功能。也就是上面文件[UploadFileExampleSubmit.jsp]中用到的[PhotoMgr.fileUpload(su,pageContext)]方法。
备注:关于jsp页面和java方法我不做过多的说明了,应该已经比较清楚了。
本文自发布后,受到了很多朋友的关注,也为不少的朋友提供了帮助,我很高兴。
下面将朋友们遇到的一些问题作汇总后需要注意的一些地方列了出来:
<1> 功能实现需要flash插件支持。
flash版本为 flash 9.0.124 或者 flash 10.0.12.36 版本(这是最新的flash10插件). 如果不是的话,可以去flash官网 http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash 进行在线安装。
<2> UploadFileExample.jsp 中的 upload_url参数设置。
参数需要使用 http://....../UploadFileExampleSubmit.jsp 这样的完整路径.
<3> 关于获取参数 post_params中的参数值。
post_params: {"user_id" : "stephen830","pass_id" : "123456"} 中的参数,不能使用普通的request.getParameter("")方法来获取,
而必须用你的上传方法对应的特定方法来获取,比如,我这里用smartupload,则获取方法就是String userId = su.getRequest().getParameter("user_id");
<4> 上传后不管成功还是失败,都需要有返回值。
这个返回值将传递到对应js中。返回值在UploadFileExampleSubmit.jsp中设置,成功则 out.print("successed"); 失败则 out.print(pageErrorInfo);//pageErrorInfo为错误信息。
该返回值将传递给js目录下的handlers.js文件,具体的方法是 function uploadSuccess(file, serverData) {...} 。
有些朋友的上传成功后out.print("successed"); 发现js收到的"successed"前面会有隐藏字符,遇到这种情况可以更改function uploadSuccess(file, serverData) {...} 中的
var isSuccess = (serverData.indexOf("successed")==0?true:false);
改为
var isSuccess = (serverData.indexOf("successed")>-1?true:false);
就可以了。
<5> 附件中增加一个完整的测试功能例子。
附件名 PROJECT_swfupload.zip 下载 http://stephen830.iteye.com/upload/attachment/53105/e0e90839-a760-3adb-acdd-aa3b972d090c.zip
附录:swfupload 文件批量上传压缩包 swfupload.zip(支持最新的flash10插件) (附件中没有java类,请自己准备1个java类,将上面的方法复制进去)
为方便了解和调试功能,在附件中增加了一个完整的工程Example,附件名(PROJECT_swfupload.zip),大家可以直接使用来测试功能。
最后感谢朋友 flyfan,taiwei 对本篇的建议!
-------------------------------------------------------------
分享知识 分享快乐,分享知识,分享快乐,希望文章能给需要的朋友带来小小的帮助。
应该没有问题,检查这个变量的值是否含有一些特殊字符~
谢谢,我再好好研究研究!
请问楼主,我自己设置的参数,file_path post_params: { "user_id" : "lance", "pass_id" : "lance", "file_path" : "<%=filePath%>" }, 之后就无法显示 选择文件 那个按钮 换成下面的代码就可以 post_params: { "user_id" : "lance", "pass_id" : "lance", "file_path" : filePath" }, 我需要从其他页面转过来,并将文件上传路径带过来,然后交给PhotoMgr来处理,请问有什么办法吗?
应该没有问题,检查这个变量的值是否含有一些特殊字符~
stephen830 写道
xueshuanglong 写道stephen830 写道xueshuanglong 写道 stephen830 写道 xueshuanglong 写道 能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~ 还希望你多多帮助,这个对我现在很关键!!! 升级到最新的flash插件版本~ 我以前的是flash_player_10,我换了个flash_player_9之后能运行了,可是又出了个问题,就是她每次打开个页面老是提醒升级,升级之后又不能用了。flash10和flash9都可以运行,可能你电脑上的其他环境导致的Adobe在升级flash10以后增强了安全机制,现在已经不能通过脚本来弹出文件对话框,可以采用SWFUpload(2.2以上)提供的Flash按钮来解决这个问题。
对的,这个版本用的就是SWFUpload(2.2以上)提供的Flash按钮
xueshuanglong 写道
stephen830 写道
xueshuanglong 写道 stephen830 写道 xueshuanglong 写道 能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~ 还希望你多多帮助,这个对我现在很关键!!! 升级到最新的flash插件版本~ 我以前的是flash_player_10,我换了个flash_player_9之后能运行了,可是又出了个问题,就是她每次打开个页面老是提醒升级,升级之后又不能用了。
flash10和flash9都可以运行,可能你电脑上的其他环境导致的
Adobe在升级flash10以后增强了安全机制,现在已经不能通过脚本来弹出文件对话框,可以采用SWFUpload(2.2以上)提供的Flash按钮来解决这个问题。
stephen830 写道
xueshuanglong 写道 stephen830 写道 xueshuanglong 写道 能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~ 还希望你多多帮助,这个对我现在很关键!!! 升级到最新的flash插件版本~ 我以前的是flash_player_10,我换了个flash_player_9之后能运行了,可是又出了个问题,就是她每次打开个页面老是提醒升级,升级之后又不能用了。
flash10和flash9都可以运行,可能你电脑上的其他环境导致的
xueshuanglong 写道
stephen830 写道 xueshuanglong 写道 能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~ 还希望你多多帮助,这个对我现在很关键!!! 升级到最新的flash插件版本~
我以前的是flash_player_10,我换了个flash_player_9之后能运行了,可是又出了个问题,就是她每次打开个页面老是提醒升级,升级之后又不能用了。
stephen830 写道
xueshuanglong 写道 能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~ 还希望你多多帮助,这个对我现在很关键!!!
升级到最新的flash插件版本~
xueshuanglong 写道
能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~
还希望你多多帮助,这个对我现在很关键!!!
xueshuanglong 写道
能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~
我检查了,我的是安装了个flash9还是不行。
能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。
请检查flash插件的版本~
择下拉框中的选项时 刷新下整个页面 就可以把选中的选项放入swfupload中了
stephen830 写道
iomo 写道 相册列表是下拉框显示,请问怎么获取选中下拉框中的值? swfupload是页面显示时进行加载,当我修改下拉框中的值时不会传到swfupload中。 目前这个问题我也没有很好的解决方法。不过可以这样做: 选择下拉框中的选项时 刷新下整个页面 就可以把选中的选项放入swfupload中了。 刷新页面会删除已经上传文件列表,我现在的方法是采用session。 我在下拉框中写了一个事件,当下拉框值改变时触发事件并把值写入到Session,后台从sessiong中取值。 感觉这个方法也不好。
你的也是一个解决方法。
相册列表是下拉框显示,请问怎么获取选中下拉框中的值? swfupload是页面显示时进行加载,当我修改下拉框中的值时不会传到swfupload中。
目前这个问题我也没有很好的解决方法。不过可以这样做:
选择下拉框中的选项时 刷新下整个页面 就可以把选中的选项放入swfupload中了。
alert(file.id); 结果是: successed …… (一段html代码)
可以在返回值successed后面拼接图片的ID。
功能完全支持ie和firefox浏览器!同样也支持safari浏览器!
一般的WEB方式文件上传只能一个一个的进行上传,在某些应用上就显得很不人性化,客户们都希望能够1次选择很多文件,然后让系统把选择的文件全部上传。
这里,就将针对这个问题提出一个比较完美的解决方案,利用的技术主要有2个:Flash 和 smartupload。Flash 能够让客户一次选择多个文件,而smartupload负责将选择的文件上传到服务器上。
有些朋友看到这里,就知道了,其实就是swfupload方法,具体信息可以访问swfupload官方网站:http://www.swfupload.org/
让我们先来看看客户端的界面效果图。(多选文件,批量上传,上传进度显示)
要做到图中的效果,其实很方便,看完下面的描述,相信大家都可以实现上图中的效果了。
说明:swfupload2中通过一个png图片与flash插件进行关联,可以修改images下的png图片来(如上图中的[选择文件]图片)自定义显示自己想要的图片样子(不要修改图片名字和格式)。
如果你用的不是java环境,不要紧,只要稍作修改,同样可以使用在其他的环境中。
第1步,要进行下面的过程,必须先准备好Flash插件和smartupload。
Flash插件:相信大家的浏览器早已经安装过了,请检查版本,尽量使用最新的的flash插件。
smartupload:大家可以去看看我的另一篇文章 [上传下载组件SmartUpload使用方法] http://stephen830.iteye.com/blog/255010 里面详细讲述了使用方法,并且提供了具体java类的下载。请先熟悉smartupload,然后再开始下面的步骤。
第2步,前台部分准备客户操作的WEB界面,如下[UploadFileExample.jsp、UploadFileExampleSubmit.jsp]
(关于参数 upload_url: "<%=uploadUrl.toString()%>",
要注意提交文件路径,最好用http://.../UploadFileExample.jsp格式的完整路径,即像我例子中写的那样)
UploadFileExample.jsp
<%@ page contentType="text/html;charset=UTF-8"%> <% double perMaxSize = 1.5;//单个文件允许的max大小 String sizeUnit = "MB";//perMaxSize数据对应的单位 String ext = "*.jpg;*.jpeg;*.gif";//允许上传的文件类型 //文件上传提交的目标页面 StringBuffer uploadUrl = new StringBuffer("http://"); uploadUrl.append(request.getHeader("Host")); uploadUrl.append(request.getContextPath()); uploadUrl.append("/admin/swfuploadexample/UploadFileExampleSubmit.jsp"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>批量相片上传</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="css/default.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/swfupload.js"></script> <script type="text/javascript" src="js/swfupload.swfobject.js"></script> <script type="text/javascript" src="js/swfupload.queue.js"></script> <script type="text/javascript" src="js/fileprogress.js"></script> <script type="text/javascript" src="js/handlers.js"></script> <script type="text/javascript"> var swfu; SWFUpload.onload = function () { var settings = { flash_url : "js/swfupload.swf", upload_url: "<%=uploadUrl.toString()%>", post_params: { "user_id" : "stephen830", "pass_id" : "123456" }, file_size_limit : "<%=perMaxSize%> <%=sizeUnit%>", file_types : "<%=ext%>", file_types_description : "<%=ext%>", file_upload_limit : 100, file_queue_limit : 0, custom_settings : { progressTarget : "fsUploadProgress", cancelButtonId : "btnCancel", uploadButtonId : "btnUpload", myFileListTarget : "idFileList" }, debug: false, auto_upload:false, // Button Settings button_image_url : "images/XPButtonUploadText_61x22.png", // Relative to the SWF file button_placeholder_id : "spanButtonPlaceholder", button_width: 61, button_height: 22, // The event handler functions are defined in handlers.js swfupload_loaded_handler : swfUploadLoaded, file_queued_handler : fileQueued, file_queue_error_handler : fileQueueError, file_dialog_complete_handler : fileDialogComplete, upload_start_handler : uploadStart, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : uploadComplete, queue_complete_handler : queueComplete, // Queue plugin event // SWFObject settings minimum_flash_version : "9.0.28", swfupload_pre_load_handler : swfUploadPreLoad, swfupload_load_failed_handler : swfUploadLoadFailed }; swfu = new SWFUpload(settings); } </script> </head> <body bgcolor="#FCFCFC" topmargin="0px" leftmargin="10px" rightmargin="10px" scroll="yes"> <table width="100%" cellspacing="4" cellpadding="4" border="0" bgcolor="#FCFCFC"> <tr> <td class="DH1"> <table width="100%" cellspacing="4" cellpadding="4" border="0" bgcolor="#FCFCFC"> <tr> <td class="DH2"> <STRONG>批量上传相片 (支持的相片类型:<%=ext%>;单个相片最大不能超过:<%=perMaxSize%> <%=sizeUnit%>)</STRONG> </td><td class="DH2" align="right"></td> </tr> </table> <div id="content"> <form id="form1" action="UploadFileExampleSubmit.jsp" method="post" enctype="multipart/form-data"> <table width="90%" cellspacing="0" cellpadding="0" border="0"><tr><td> <span id="spanButtonPlaceholder"></span> <input id="btnUpload" type="button" value="上传相片" class="btn" /> <input id="btnCancel" type="button" value="取消全部上传" disabled="disabled" class="btn" /></td> </tr></table> <table id="idFileList" class="uploadFileList"><tr class="uploadTitle"><td><B>文件名</B></td><td><B>文件大小</B></td><td width=100px><B>状态</B></td><td width=35px> </td></tr></table> 等待上传 <span id="idFileListCount">0</span> 个 ,成功上传 <span id="idFileListSuccessUploadCount">0</span> 个 <div id="divSWFUploadUI" style="visibility: hidden;"></div> <noscript style="display: block; margin: 10px 25px; padding: 10px 15px;"> 很抱歉,相片上传界面无法载入,请将浏览器设置成支持JavaScript。 </noscript> <div id="divLoadingContent" class="content" style="background-color: #FFFF66; border-top: solid 4px #FF9966; border-bottom: solid 4px #FF9966; margin: 10px 25px; padding: 10px 15px; display: none;"> 相片上传界面正在载入,请稍后... </div> <div id="divLongLoading" class="content" style="background-color: #FFFF66; border-top: solid 4px #FF9966; border-bottom: solid 4px #FF9966; margin: 10px 25px; padding: 10px 15px; display: none;"> 相片上传界面载入失败,请确保浏览器已经开启对JavaScript的支持,并且已经安装可以工作的Flash插件版本。 </div> <div id="divAlternateContent" class="content" style="background-color: #FFFF66; border-top: solid 4px #FF9966; border-bottom: solid 4px #FF9966; margin: 10px 25px; padding: 10px 15px; display: none;"> 很抱歉,相片上传界面无法载入,请安装或者升级您的Flash插件。 请访问: <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" target="_blank">Adobe网站</a> 获取最新的Flash插件。 </div> </form> </div> </td></tr></table> </body> </html>
UploadFileExample.jsp对应的处理页面 --> UploadFileExampleSubmit.jsp
(1)请确保已经看完我的另一篇文章(上传下载组件SmartUpload使用方法 http://stephen830.iteye.com/admin/blogs/255010),先搞好这个才能开始下面的操作
(2)写一个对应上传方法类,com.soft4j.bo.PhotoMgr.java,其中的方法就是文章下面提到的public static String fileUpload(SmartUpload su,PageContext pageContext) throws Exception {...}
这2点弄好了,ok,可以继续。(如果没有准备java文件,下面的UploadFileExampleSubmit.jsp会报错)
注意在(UploadFileExampleSubmit.jsp)中:上传成功后必须返回“successed”,失败的话则返回失败的原因。
<%@ page contentType="text/html;charset=UTF-8"%><%@ page import="com.soft4j.httpupload4j.SmartUpload"%><%@ page import="com.soft4j.bo.PhotoMgr"%><% String pageErrorInfo = null; SmartUpload su = null; try{ su = new SmartUpload(); su.initialize(pageContext); su.upload(); pageErrorInfo = PhotoMgr.fileUpload(su,pageContext); if(pageErrorInfo==null){ out.print("successed"); } }catch(Exception e){ pageErrorInfo = e.getMessage(); }finally{ su = null; if(pageErrorInfo!=null){ out.print(pageErrorInfo); } } %>
第3步 准备后台的文件上传功能。也就是上面文件[UploadFileExampleSubmit.jsp]中用到的[PhotoMgr.fileUpload(su,pageContext)]方法。
/** * 文件上传方法. * @param su * @param pageContext * @return * @throws Exception */ public static String fileUpload(SmartUpload su,PageContext pageContext) throws Exception { com.soft4j.httpupload4j.File suFile = null; int fileCount = 0; try { //获取传递过来的参数 String userId = su.getRequest().getParameter("user_id"); String passId = su.getRequest().getParameter("pass_id"); String fileExt = ""; int fileSize = 0; String AllowedExtensions = ",jpg,jpeg,gif,";//允许上传的文件类型 double maxFileSize = 1.5*1024;//单文件最大大小,单位KB //校验文件类型和大小 for (int i=0; i<su.getFiles().getCount();i++) { suFile = su.getFiles().getFile(i); if (suFile.isMissing()) continue; //校验文件大小 fileSize = suFile.getSize()/1024;//字节转换成KB if(fileSize==0) fileSize=1; if(maxFileSize<fileSize) throw new Exception("单个上传相片的容量不能超过["+maxFileSize+"KB]"); //校验文件类型 if (suFile.getFileExt() == null || "".equals(suFile.getFileExt())) { fileExt = ",,"; } else { fileExt = "," + suFile.getFileExt().toLowerCase() + ","; } if (!"".equals(AllowedExtensions) && AllowedExtensions.indexOf(fileExt) == -1) { throw new Exception("您上传的文件[" + suFile.getFileName() + "]的类型为系统禁止上传的文件类型,不能上传!"); } fileCount++; } if (fileCount==0) throw new Exception("请选择上传的文件"); //准备保存文件 String filePath="D:\\tomcat\\webapps\\test\\photo\\";//这里填写项目中存放上传文件的物理路径 for (int i=0; i<su.getFiles().getCount();i++) { suFile = su.getFiles().getFile(i); suFile.saveAs(filePath+suFile.getFileName(),SmartUpload.SAVE_PHYSICAL);//保存文件 } //成功返回null return null; } finally { // } }
备注:关于jsp页面和java方法我不做过多的说明了,应该已经比较清楚了。
本文自发布后,受到了很多朋友的关注,也为不少的朋友提供了帮助,我很高兴。
下面将朋友们遇到的一些问题作汇总后需要注意的一些地方列了出来:
<1> 功能实现需要flash插件支持。
flash版本为 flash 9.0.124 或者 flash 10.0.12.36 版本(这是最新的flash10插件). 如果不是的话,可以去flash官网 http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash 进行在线安装。
<2> UploadFileExample.jsp 中的 upload_url参数设置。
参数需要使用 http://....../UploadFileExampleSubmit.jsp 这样的完整路径.
<3> 关于获取参数 post_params中的参数值。
post_params: {"user_id" : "stephen830","pass_id" : "123456"} 中的参数,不能使用普通的request.getParameter("")方法来获取,
而必须用你的上传方法对应的特定方法来获取,比如,我这里用smartupload,则获取方法就是String userId = su.getRequest().getParameter("user_id");
<4> 上传后不管成功还是失败,都需要有返回值。
这个返回值将传递到对应js中。返回值在UploadFileExampleSubmit.jsp中设置,成功则 out.print("successed"); 失败则 out.print(pageErrorInfo);//pageErrorInfo为错误信息。
该返回值将传递给js目录下的handlers.js文件,具体的方法是 function uploadSuccess(file, serverData) {...} 。
有些朋友的上传成功后out.print("successed"); 发现js收到的"successed"前面会有隐藏字符,遇到这种情况可以更改function uploadSuccess(file, serverData) {...} 中的
var isSuccess = (serverData.indexOf("successed")==0?true:false);
改为
var isSuccess = (serverData.indexOf("successed")>-1?true:false);
就可以了。
<5> 附件中增加一个完整的测试功能例子。
附件名 PROJECT_swfupload.zip 下载 http://stephen830.iteye.com/upload/attachment/53105/e0e90839-a760-3adb-acdd-aa3b972d090c.zip
附录:swfupload 文件批量上传压缩包 swfupload.zip(支持最新的flash10插件) (附件中没有java类,请自己准备1个java类,将上面的方法复制进去)
为方便了解和调试功能,在附件中增加了一个完整的工程Example,附件名(PROJECT_swfupload.zip),大家可以直接使用来测试功能。
最后感谢朋友 flyfan,taiwei 对本篇的建议!
-------------------------------------------------------------
分享知识 分享快乐,分享知识,分享快乐,希望文章能给需要的朋友带来小小的帮助。
评论
133 楼
yuezhou1226
2009-05-28
java
132 楼
jimever
2009-05-21
在struts里面怎么获得到上传的文件?
131 楼
33301015
2009-04-24
stephen830 写道
应该没有问题,检查这个变量的值是否含有一些特殊字符~
谢谢,我再好好研究研究!
130 楼
stephen830
2009-04-23
33301015 写道
请问楼主,我自己设置的参数,file_path post_params: { "user_id" : "lance", "pass_id" : "lance", "file_path" : "<%=filePath%>" }, 之后就无法显示 选择文件 那个按钮 换成下面的代码就可以 post_params: { "user_id" : "lance", "pass_id" : "lance", "file_path" : filePath" }, 我需要从其他页面转过来,并将文件上传路径带过来,然后交给PhotoMgr来处理,请问有什么办法吗?
应该没有问题,检查这个变量的值是否含有一些特殊字符~
129 楼
33301015
2009-04-23
请问楼主,我自己设置的参数,file_path
post_params: {
"user_id" : "lance",
"pass_id" : "lance",
"file_path" : "<%=filePath%>"
},
之后就无法显示 选择文件 那个按钮
换成下面的代码就可以
post_params: {
"user_id" : "lance",
"pass_id" : "lance",
"file_path" : filePath"
},
我需要从其他页面转过来,并将文件上传路径带过来,然后交给PhotoMgr来处理,请问有什么办法吗?
post_params: {
"user_id" : "lance",
"pass_id" : "lance",
"file_path" : "<%=filePath%>"
},
之后就无法显示 选择文件 那个按钮
换成下面的代码就可以
post_params: {
"user_id" : "lance",
"pass_id" : "lance",
"file_path" : filePath"
},
我需要从其他页面转过来,并将文件上传路径带过来,然后交给PhotoMgr来处理,请问有什么办法吗?
128 楼
stephen830
2009-04-20
khotyn 写道
stephen830 写道
xueshuanglong 写道stephen830 写道xueshuanglong 写道 stephen830 写道 xueshuanglong 写道 能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~ 还希望你多多帮助,这个对我现在很关键!!! 升级到最新的flash插件版本~ 我以前的是flash_player_10,我换了个flash_player_9之后能运行了,可是又出了个问题,就是她每次打开个页面老是提醒升级,升级之后又不能用了。flash10和flash9都可以运行,可能你电脑上的其他环境导致的Adobe在升级flash10以后增强了安全机制,现在已经不能通过脚本来弹出文件对话框,可以采用SWFUpload(2.2以上)提供的Flash按钮来解决这个问题。
对的,这个版本用的就是SWFUpload(2.2以上)提供的Flash按钮
127 楼
khotyn
2009-04-19
stephen830 写道
xueshuanglong 写道
stephen830 写道
xueshuanglong 写道 stephen830 写道 xueshuanglong 写道 能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~ 还希望你多多帮助,这个对我现在很关键!!! 升级到最新的flash插件版本~ 我以前的是flash_player_10,我换了个flash_player_9之后能运行了,可是又出了个问题,就是她每次打开个页面老是提醒升级,升级之后又不能用了。
flash10和flash9都可以运行,可能你电脑上的其他环境导致的
Adobe在升级flash10以后增强了安全机制,现在已经不能通过脚本来弹出文件对话框,可以采用SWFUpload(2.2以上)提供的Flash按钮来解决这个问题。
126 楼
stephen830
2009-04-18
xueshuanglong 写道
stephen830 写道
xueshuanglong 写道 stephen830 写道 xueshuanglong 写道 能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~ 还希望你多多帮助,这个对我现在很关键!!! 升级到最新的flash插件版本~ 我以前的是flash_player_10,我换了个flash_player_9之后能运行了,可是又出了个问题,就是她每次打开个页面老是提醒升级,升级之后又不能用了。
flash10和flash9都可以运行,可能你电脑上的其他环境导致的
125 楼
xueshuanglong
2009-04-18
stephen830 写道
xueshuanglong 写道
stephen830 写道 xueshuanglong 写道 能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~ 还希望你多多帮助,这个对我现在很关键!!! 升级到最新的flash插件版本~
我以前的是flash_player_10,我换了个flash_player_9之后能运行了,可是又出了个问题,就是她每次打开个页面老是提醒升级,升级之后又不能用了。
124 楼
stephen830
2009-04-17
xueshuanglong 写道
stephen830 写道
xueshuanglong 写道 能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~ 还希望你多多帮助,这个对我现在很关键!!!
升级到最新的flash插件版本~
123 楼
xueshuanglong
2009-04-17
stephen830 写道
xueshuanglong 写道
能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~
还希望你多多帮助,这个对我现在很关键!!!
122 楼
xueshuanglong
2009-04-17
stephen830 写道
xueshuanglong 写道
能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。 请检查flash插件的版本~
我检查了,我的是安装了个flash9还是不行。
121 楼
stephen830
2009-04-17
xueshuanglong 写道
能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。
请检查flash插件的版本~
120 楼
xueshuanglong
2009-04-17
能否问下,在我机子上怎么点击不出选择文件的框,请具体解释一下,我该怎么做。
119 楼
stephen830
2009-03-10
iomo 写道
择下拉框中的选项时 刷新下整个页面 就可以把选中的选项放入swfupload中了
stephen830 写道
iomo 写道 相册列表是下拉框显示,请问怎么获取选中下拉框中的值? swfupload是页面显示时进行加载,当我修改下拉框中的值时不会传到swfupload中。 目前这个问题我也没有很好的解决方法。不过可以这样做: 选择下拉框中的选项时 刷新下整个页面 就可以把选中的选项放入swfupload中了。 刷新页面会删除已经上传文件列表,我现在的方法是采用session。 我在下拉框中写了一个事件,当下拉框值改变时触发事件并把值写入到Session,后台从sessiong中取值。 感觉这个方法也不好。
你的也是一个解决方法。
118 楼
iomo
2009-03-10
择下拉框中的选项时 刷新下整个页面 就可以把选中的选项放入swfupload中了
iomo 写道
相册列表是下拉框显示,请问怎么获取选中下拉框中的值? swfupload是页面显示时进行加载,当我修改下拉框中的值时不会传到swfupload中。 目前这个问题我也没有很好的解决方法。不过可以这样做: 选择下拉框中的选项时 刷新下整个页面 就可以把选中的选项放入swfupload中了。
刷新页面会删除已经上传文件列表,我现在的方法是采用session。
我在下拉框中写了一个事件,当下拉框值改变时触发事件并把值写入到Session,后台从sessiong中取值。
感觉这个方法也不好。
stephen830 写道
iomo 写道
相册列表是下拉框显示,请问怎么获取选中下拉框中的值? swfupload是页面显示时进行加载,当我修改下拉框中的值时不会传到swfupload中。 目前这个问题我也没有很好的解决方法。不过可以这样做: 选择下拉框中的选项时 刷新下整个页面 就可以把选中的选项放入swfupload中了。
刷新页面会删除已经上传文件列表,我现在的方法是采用session。
我在下拉框中写了一个事件,当下拉框值改变时触发事件并把值写入到Session,后台从sessiong中取值。
感觉这个方法也不好。
117 楼
stephen830
2009-03-10
iomo 写道
相册列表是下拉框显示,请问怎么获取选中下拉框中的值? swfupload是页面显示时进行加载,当我修改下拉框中的值时不会传到swfupload中。
目前这个问题我也没有很好的解决方法。不过可以这样做:
选择下拉框中的选项时 刷新下整个页面 就可以把选中的选项放入swfupload中了。
116 楼
iomo
2009-03-10
相册列表是下拉框显示,请问怎么获取选中下拉框中的值?
swfupload是页面显示时进行加载,当我修改下拉框中的值时不会传到swfupload中。
swfupload是页面显示时进行加载,当我修改下拉框中的值时不会传到swfupload中。
115 楼
stephen830
2009-01-18
iomo 写道
alert(file.id); 结果是: successed …… (一段html代码)
可以在返回值successed后面拼接图片的ID。
114 楼
iomo
2009-01-17
alert(file.id);
结果是:
successed
…… (一段html代码)
结果是:
successed
…… (一段html代码)
发表评论
-
Java的内存机制
2016-08-22 13:27 4821.Java的内存机制 Java 把内存划分成两 ... -
监听域对象中属性的变更的监听器
2016-07-18 19:06 1755监听域对象中属性的变更的监听器 域对象中属性 ... -
HttpSessionActivationListener
2016-07-18 18:46 649HttpSessionActivationListe ... -
Web容器监听器(实现在线统计人数,踢人)
2016-07-18 10:48 951Web容器监听器(实现在线统计人数,踢人) Servl ... -
HttpSessionBindingListener接口
2016-07-18 10:29 642HttpSessionBindingListene ... -
ServletRequestAttributeListener接口
2016-07-17 22:24 8342. HttpSessionAttribut ... -
Servlet3中异步Servlet特性介绍
2016-07-17 15:50 846Servlet3中异步Servlet特性介绍 ... -
HttpSessionAttributeListener
2016-07-15 17:49 696HttpSessionAttributeListener ... -
使用ServletContextAttributeListener
2016-07-15 16:47 847使用ServletContextAttr ... -
ServletRequestListener
2016-07-15 16:25 601ServletRequestListener接口 ... -
HttpSessionListener
2016-07-15 14:56 635HttpSessionListener接口 M ... -
ServletContextListener 接口
2016-07-15 12:16 628在 Servlet API 中有一个 Se ... -
ReflectASM,高性能的反射
2016-04-29 17:19 961http://www.oschina.net/p/r ... -
Java多线程与静态方法
2016-04-26 11:52 850Java多线程与静态方法 在多线程中使用静态方法会发生什么 ... -
log4j日志输出格式
2016-04-12 20:58 1117log4j日志输出格式 在LOG4J的配置文件中,l ... -
Servlet3.0
2016-04-12 16:58 698一、Servlet3.0介绍 Servlet3 ... -
log4j2 使用详解
2016-04-12 14:14 1466log4j2 使用详解 转载自 Blog of ... -
Eclipse jar打包和命令行运行
2016-04-08 10:44 2963?Eclipse jar打包和命令行运行 第1步: ... -
GRAPHICSMAGICK+IM4JAVA错误Cannot run program "gm": error=2
2015-05-19 15:27 4112在通过 GRAPHICSMAGICK+IM4JAVA ... -
GraphicsMagick安装、实时生成缩略图
2015-05-19 13:39 2424GraphicsMagick安装、实时生成缩略图 ...
相关推荐
本解决方案将详细介绍如何使用SWFUpload实现多文件WEB批量上传的步骤,并解决可能遇到的问题。 首先,SWFUpload是一个开源的JavaScript库,它使用Flash技术来处理文件上传。由于Flash支持拖放和多文件选择,因此...
SwfUpload 是一款开源的...总的来说,SwfUpload是一个强大且灵活的文件上传解决方案,尤其适用于需要大量处理用户上传文件的网站或应用。其完整的注释和易用性使得它成为开发者们实现批量上传功能的首选工具。
使用这个资源,你可以快速了解如何在ASP项目中整合SWFUpload,进行批量文件上传的实现。 总之,ASP批量上传SWFUpload是结合了Flash技术和ASP服务器端脚本的一种高效文件上传方案,它提供了良好的用户体验,同时需要...
总结,swfupload作为一个成熟的文件上传解决方案,为批量上传提供了强大的功能和良好的用户体验。然而,随着技术的发展,开发者也需要关注其兼容性问题,适时采用HTML5等新技术来替换或补充。通过与PHP的紧密结合,...
java 批量 多文件 上传 SwfUpload插件兼容所有浏览器,火狐需要安装最新的flash reader,压缩包内有最新的flash reader,实例是上传多张图片,只需稍加修改可以上传任何格式的文件,很好看很好用,特意整理出来分享...
**SWFUpload 知识点详解** ...通过以上步骤和知识点,你将能够有效地使用SWFUpload实现批量文件上传功能,并在MyEclipse 6.5环境下进行开发和调试。记住,持续优化和测试是确保上传功能稳定性和用户体验的关键。
综上所述,SwfUpload为Web开发者提供了一套高效、直观的文件上传解决方案。它不仅支持多选批量上传和进度显示,还具备缩略图预览和批量删除功能,大大提升了文件管理的便捷性和用户体验。在实际项目中,结合合理的...
综上所述,SWFupload是网页批量文件上传的优秀解决方案,其强大功能和易用性使得它在开发中得到了广泛应用。通过了解其工作原理和集成方式,开发者能够更好地利用这一工具提升用户在上传文件时的体验。
总的来说,ASP.NET批量上传SwfUpload-Ext的组合是一种强大的解决方案,它结合了SwfUpload的高效上传能力和ExtJS的丰富交互体验,为用户提供了高效、安全的文件上传体验。在实际开发中,开发者需要根据项目需求灵活...
总的来说,SWFUpload提供了一套强大而灵活的工具,使Web开发人员能够优雅地处理大文件上传和多文件批量上传,同时还支持传递额外的参数,增加了上传过程的灵活性。通过理解并正确应用这些概念和技术,我们可以构建出...
2. **多文件上传**:SwfUpload的核心功能是支持多个文件的批量上传。用户可以通过选择多个文件来一次性上传,减少了重复操作。 3. **进度条显示**:SwfUpload可以显示上传进度,让用户了解文件上传的状态,提高了...
SWFUpload是一款经典的JavaScript库,专门用于处理大文件和批量文件的上传。它利用Flash技术在浏览器端提供用户友好的上传界面,同时支持多文件选择和断点续传功能,尤其适用于那些需要处理大量数据或者单个文件体积...
SWFUpload是一款强大的JavaScript与Flash相结合的文件上传组件,它被广泛用于网页中的批量图片上传功能。这个"SWFUpload批量上传图片"的项目是一个基于MyEclipse的工程实例,旨在帮助开发者理解和实现批量上传图片的...
总之,SwfUpload结合Ext.Net为.NET开发者提供了一个高效、可定制的多文件上传解决方案,提高了Web应用的交互性和用户体验。通过熟练掌握这两项技术,开发者可以轻松地构建出满足各种需求的文件上传系统。
SwfUpload结合Java和Struts2框架,提供了一种高效、可定制的多文件上传解决方案。通过前端的SwfUpload配置和后端的Java处理,我们可以实现流畅的上传体验,同时保持对上传文件的有效控制。在实际项目中,还需要考虑...
WEB版一次选择多个文件进行批量上传(swfupload)的解决方案 一般的WEB方式文件上传只能使用FileUpload控件进行一个文件一个文件的进行上传,就算是批量上传,也要把文件一个一个的添加到页面,无法如 windows程序...
本项目是struts2和swfupload结合,实现单个文件上传、上传后预览(index.jsp),和批量上传(multiple.jsp),里面都有代码注释和一个整理的说明文档(SWFUpload说明文档),讲的非常非常详细,都是本人亲自整理。...