- 浏览: 3026721 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (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 对本篇的建议!
-------------------------------------------------------------
分享知识 分享快乐,分享知识,分享快乐,希望文章能给需要的朋友带来小小的帮助。
这个网站打不开啊,能告诉我你是怎么用的吗?我的email:tosswang@163.com,谢谢
应该是改动swfupload.js文件中的"file_post_name";
另外,用struts2的action上传是如果上传成功后要调用this.getResponse().getWriter().print("successed");这样成功上传一个文件后才会进行下一个文件的上传,否则会一直处于等待中.
我觉得采用struts2作为上传更简单一线,上传页面(UploadFileExample.jsp
)基本上除了把" uploadUrl.append("/admin/swfuploadexample/UploadFileExampleSubmit.jsp"); "这个改为上传的action,例如我的改为"uploadUrl.append("/swfupload.do");",别的和普通的上传代码是一样的.
功能完全支持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 对本篇的建议!
-------------------------------------------------------------
分享知识 分享快乐,分享知识,分享快乐,希望文章能给需要的朋友带来小小的帮助。
评论
153 楼
qinguolong
2014-09-19
请教下,现在有这样一个需求:批量上传时,需要控制此次上传文件总量(已上传成功的+等待上传的)大小为:20MB;该如何控制呢?假如我一次选择了30个文件,但是到了第21个文件的时候,就超出了20MB,需要将:等待上传 个数调整为20,如何调整这个个数,共2个问题,希望您能帮忙解答下,谢谢。
152 楼
flamesea
2013-10-15
非常感谢,可以用。
另外报告一个bug:就是设置文件上传尺寸那边,作者给的样例是“1.5MB”,但是实际测试发现上传1.04MB的图片会报尺寸超过问题。
而后反编译swf文件发现:SWFUpload.as中的代码有问题,如下:
(反编译后变量名丢失了,勿怪)
private function SetFileSizeLimit(param1:String) : void
{
var _loc_2:Number;
var _loc_3:String;
var _loc_4:* = /^\s*|\s*$/;
param1 = param1.toLowerCase();
param1 = param1.replace(_loc_4, "");
var _loc_5:* = param1.match(/^\d+/);
就是这一句错了,这样只能匹配出整数部分,而不能匹配出小数部分
if (param1.match(/^\d+/) !== null && _loc_5.length > 0)
{
_loc_2 = parseInt(_loc_5[0]);
这里就一样取错了
}// end if
if (isNaN(_loc_2) || _loc_2 < 0)
{
_loc_2 = 0;
}// end if
var _loc_6:* = param1.match(/(b|kb|mb|gb)/);
if (param1.match(/(b|kb|mb|gb)/) != null && _loc_6.length > 0)
{
_loc_3 = _loc_6[0];
}// end if
var _loc_7:Number;
if (_loc_3 === "b")
{
_loc_7 = 1;
}
else if (_loc_3 === "mb")
{
_loc_7 = 1048576;
}
else if (_loc_3 === "gb")
{
_loc_7 = 1073741824;
}// end else if
this.fileSizeLimit = _loc_2 * _loc_7;
return;
}
另外报告一个bug:就是设置文件上传尺寸那边,作者给的样例是“1.5MB”,但是实际测试发现上传1.04MB的图片会报尺寸超过问题。
而后反编译swf文件发现:SWFUpload.as中的代码有问题,如下:
(反编译后变量名丢失了,勿怪)
private function SetFileSizeLimit(param1:String) : void
{
var _loc_2:Number;
var _loc_3:String;
var _loc_4:* = /^\s*|\s*$/;
param1 = param1.toLowerCase();
param1 = param1.replace(_loc_4, "");
var _loc_5:* = param1.match(/^\d+/);
就是这一句错了,这样只能匹配出整数部分,而不能匹配出小数部分
if (param1.match(/^\d+/) !== null && _loc_5.length > 0)
{
_loc_2 = parseInt(_loc_5[0]);
这里就一样取错了
}// end if
if (isNaN(_loc_2) || _loc_2 < 0)
{
_loc_2 = 0;
}// end if
var _loc_6:* = param1.match(/(b|kb|mb|gb)/);
if (param1.match(/(b|kb|mb|gb)/) != null && _loc_6.length > 0)
{
_loc_3 = _loc_6[0];
}// end if
var _loc_7:Number;
if (_loc_3 === "b")
{
_loc_7 = 1;
}
else if (_loc_3 === "mb")
{
_loc_7 = 1048576;
}
else if (_loc_3 === "gb")
{
_loc_7 = 1073741824;
}// end else if
this.fileSizeLimit = _loc_2 * _loc_7;
return;
}
151 楼
yi303526230
2013-07-22
(关于参数 upload_url: "<%=uploadUrl.toString()%>",
要注意提交文件路径,最好用http://.../UploadFileExample.jsp格式的完整路径,即像我例子中写的那样)
楼主说的这个有问题,本人遇到点击上传后,文件并不会上传,一直卡在那里,我改成用相对地址后就不会出现这种问题,当然,出现这个问题是在正式环境,本地跑的话就不会出现。
要注意提交文件路径,最好用http://.../UploadFileExample.jsp格式的完整路径,即像我例子中写的那样)
楼主说的这个有问题,本人遇到点击上传后,文件并不会上传,一直卡在那里,我改成用相对地址后就不会出现这种问题,当然,出现这个问题是在正式环境,本地跑的话就不会出现。
150 楼
tboy
2013-07-15
调了半天也没弄好,麻烦哪位高手发个整套的例子程序到我邮箱:2369816086@qq.com 谢谢。。
149 楼
ningvsban
2012-11-24
我的页面显示出现中文乱码(文件名和文件大小都正常显示,可是状态和取消都是乱码),这是为什么,求楼主指导????
148 楼
sunwang810812
2010-12-17
楼主是好人,找了N久,才找到这样的好文章^
147 楼
sunwang810812
2010-12-17
xiaoqulai 写道
代码太多,你为什么不试试我的批量上传工具,超级简单,只需要往jsp里面插入三句话
推荐你看看: AlanXUpload 批量上传
推荐你看看: AlanXUpload 批量上传
这个网站打不开啊,能告诉我你是怎么用的吗?我的email:tosswang@163.com,谢谢
146 楼
南方觅雪
2010-10-27
怎么下载不了附件,有两次下载下来了,但不是工程文件,是其它一些不相关的东西
145 楼
hyling927
2010-09-16
请问楼主,是啥时候调用的UploadFileExampleSubmit.jsp页面 啊?为什么我在上传相片按钮的事件里没有找到呢?
144 楼
wgcniler
2010-02-26
swfupload自250版本后支持resize功能,请问版主在您这里的基础上如何加上resize功能.
143 楼
joker_yao
2009-12-03
我测试通过了 但是我改成提交到 servlet 就没反应了?为什么呢
142 楼
xiaoqulai
2009-12-01
代码太多,你为什么不试试我的批量上传工具,超级简单,只需要往jsp里面插入三句话
推荐你看看: AlanXUpload 批量上传
推荐你看看: AlanXUpload 批量上传
141 楼
wgcniler
2009-11-02
请问在上传图片前能对图片进行压缩么?如何实现?
140 楼
wgcniler
2009-10-15
sbswcidr 写道
:cry:
太感谢了。。。
找了三天没找到的东西。。。
终于找到了。。
我试了一下。。我用的是struts2上传的。。发现有几处地方有问题
1.在action里面要定义这三个属性才能接收到文件的相关信息,不知道可否修改这个属性的名字。不知道在哪修改。
2.如果上传的文件文件名包含中文字符的话。上传不了。这个可能是要转编码之类的。我还没试过。
3.一切准备好了之后我开始上传了,可是发现文件是有传上去了。。而且其它的业务数据也有保存进去了。可是界面上还是显示等待上传字样,于是我认真仔细看了一下原来是这样子的啊,晕,心太急了
是因为我上传是提交到后台action处理的,所以一开始没注意看UploadFileExampleSubmit.jsp这段代码
我Action返回的是null,后来改了一下就OK了。
应改为
非常感谢LZ。。。您是好人啊。。。。



找了三天没找到的东西。。。
终于找到了。。
我试了一下。。我用的是struts2上传的。。发现有几处地方有问题
1.在action里面要定义这三个属性才能接收到文件的相关信息,不知道可否修改这个属性的名字。不知道在哪修改。
/** 文件对象 */ private List<File> filedata; /** 文件名 */ private List<String> filedataFileName; /** 文件内容类型 */ private List<String> filedataContentType; /** * @return the filedata */ public List<File> getFiledata() { return filedata; } /** * @param filedata the filedata to set */ public void setFiledata(List<File> filedata) { this.filedata = filedata; } /** * @return the filedataFileName */ public List<String> getFiledataFileName() { return filedataFileName; } /** * @param filedataFileName the filedataFileName to set */ public void setFiledataFileName(List<String> filedataFileName) { this.filedataFileName = filedataFileName; } /** * @return the filedataContentType */ public List<String> getFiledataContentType() { return filedataContentType; } /** * @param filedataContentType the filedataContentType to set */ public void setFiledataContentType(List<String> filedataContentType) { this.filedataContentType = filedataContentType; }
2.如果上传的文件文件名包含中文字符的话。上传不了。这个可能是要转编码之类的。我还没试过。
3.一切准备好了之后我开始上传了,可是发现文件是有传上去了。。而且其它的业务数据也有保存进去了。可是界面上还是显示等待上传字样,于是我认真仔细看了一下原来是这样子的啊,晕,心太急了
是因为我上传是提交到后台action处理的,所以一开始没注意看UploadFileExampleSubmit.jsp这段代码
if(pageErrorInfo==null){ out.print("successed"); }
我Action返回的是null,后来改了一下就OK了。
应改为
public String saveFiles(){ try{ HttpServletResponse response = ServletActionContext.getResponse(); //此处得到文件执行上传操作,并保存相关的业务数据 response.getWriter().write("successed"); }catch(Exception e){ e.printStackTrace(); } return null; }
非常感谢LZ。。。您是好人啊。。。。
应该是改动swfupload.js文件中的"file_post_name";
另外,用struts2的action上传是如果上传成功后要调用this.getResponse().getWriter().print("successed");这样成功上传一个文件后才会进行下一个文件的上传,否则会一直处于等待中.
我觉得采用struts2作为上传更简单一线,上传页面(UploadFileExample.jsp
)基本上除了把" uploadUrl.append("/admin/swfuploadexample/UploadFileExampleSubmit.jsp"); "这个改为上传的action,例如我的改为"uploadUrl.append("/swfupload.do");",别的和普通的上传代码是一样的.
139 楼
sbswcidr
2009-09-28
用这个上传。。后台是用struts2 编写的。。可是传文件名是中文的会乱码。。。
经过一段时间的思考。。。。
result = new String(str1.getBytes("GBK"),"UTF-8");
这样子转换出来。。会有正确的中文转换出来。。
但是当中文个数是偶数个的时候转换是没有问题的。。
可是如果是奇数个的时候就会有个别字转换不了。。
有人知道是怎么回事吗?
怎么解决?
谢谢。。。
经过一段时间的思考。。。。
result = new String(str1.getBytes("GBK"),"UTF-8");
这样子转换出来。。会有正确的中文转换出来。。
但是当中文个数是偶数个的时候转换是没有问题的。。
可是如果是奇数个的时候就会有个别字转换不了。。
有人知道是怎么回事吗?
怎么解决?
谢谢。。。
138 楼
sjpsega
2009-09-07
哥们,不错,顶一个。
这个弄了好久,原先的只能支持Flash 9 ,现在要支持Flash 10 ,累人啊……
这个弄了好久,原先的只能支持Flash 9 ,现在要支持Flash 10 ,累人啊……
137 楼
zhongxiaoyi738
2009-09-07
上传成功之后报错
---SWFUpload Instance Info---
Version: 2.2.0 Beta 2
Movie Name: SWFUpload_0
Settings:
upload_url: /ngchnl/webpage/upload/doUpload.jsp
flash_url: /ngchnl/swpupload/flash/swfupload.swf?swfuploadrnd=772795929
use_query_string: false
requeue_on_error: false
http_success:
file_post_name: Filedata
post_params: [object Object]
file_types: *.txt;*.xls;*.gif
file_types_description: *.txt;*.xls;*.gif
file_size_limit: 10 MB
file_upload_limit: 10
file_queue_limit: 0
debug: true
prevent_swf_caching: true
button_placeholder_id: spanButtonPlaceHolder
button_image_url: /ngchnl/swpupload/images/XPButtonUploadText_61x22.png
button_width: 65
button_height: 29
button_text: <span class="theFont">选择文件</span>
button_text_style: .theFont { font-size: 10; }
button_text_top_padding: 3
button_text_left_padding: 12
button_action: -110
button_disabled: false
custom_settings: [object Object]
Event Handlers:
swfupload_loaded_handler assigned: false
file_dialog_start_handler assigned: false
file_queued_handler assigned: true
file_queue_error_handler assigned: true
upload_start_handler assigned: true
upload_progress_handler assigned: true
upload_error_handler assigned: true
upload_success_handler assigned: true
upload_complete_handler assigned: true
debug_handler assigned: true
SWFUpload.SWFObject Plugin settings:
minimum_flash_version: 9.0.28
swfupload_pre_load_handler assigned: false
swfupload_load_failed_handler assigned: false
SWF DEBUG: SWFUpload Init Complete
SWF DEBUG:
SWF DEBUG: ----- SWF DEBUG OUTPUT ----
SWF DEBUG: Build Number: SWFUPLOAD 2.2.0 Beta 2 2008-10-28
SWF DEBUG: movieName: SWFUpload_0
SWF DEBUG: Upload URL: /ngchnl/webpage/upload/doUpload.jsp
SWF DEBUG: File Types String: *.txt;*.xls;*.gif
SWF DEBUG: Parsed File Types: txt,xls,gif
SWF DEBUG: HTTP Success: 0
SWF DEBUG: File Types Description: *.txt;*.xls;*.gif (*.txt;*.xls;*.gif)
SWF DEBUG: File Size Limit: 10485760 bytes
SWF DEBUG: File Upload Limit: 10
SWF DEBUG: File Queue Limit: 10
SWF DEBUG: Post Params:
SWF DEBUG: op_id=9009
SWF DEBUG: ----- END SWF DEBUG OUTPUT ----
SWF DEBUG:
SWF DEBUG: Event: fileDialogStart : Browsing files. Multi Select. Allowed file types: *.txt;*.xls;*.gif
SWF DEBUG: Select Handler: Received the files selected from the dialog. Processing the file list...
SWF DEBUG: Event: fileQueued : File ID: SWFUpload_0_0
SWF DEBUG: Event: fileQueued : File ID: SWFUpload_0_1
SWF DEBUG: Event: fileDialogComplete : Finished processing selected files. Files selected: 2. Files Queued: 2
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
SWF DEBUG: StartUpload: First file in queue
SWF DEBUG: Event: uploadStart : File ID: SWFUpload_0_0
SWF DEBUG: Global Post Item: op_id=9009
SWF DEBUG: ReturnUploadStart(): File accepted by startUpload event and readied for upload. Starting upload to /ngchnl/webpage/upload/doUpload.jsp for File ID: SWFUpload_0_0
SWF DEBUG: Event: uploadProgress (OPEN): File ID: SWFUpload_0_0
SWF DEBUG: Event: uploadProgress: File ID: SWFUpload_0_0. Bytes: 927. Total: 927
SWF DEBUG: Event: uploadSuccess: File ID: SWFUpload_0_0 Data:
SWF DEBUG: successed
SWF DEBUG: Event: uploadComplete : Upload cycle complete.
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
SWF DEBUG: StartUpload: First file in queue
SWF DEBUG: Event: uploadStart : File ID: SWFUpload_0_1
SWF DEBUG: Global Post Item: op_id=9009
SWF DEBUG: ReturnUploadStart(): File accepted by startUpload event and readied for upload. Starting upload to /ngchnl/webpage/upload/doUpload.jsp for File ID: SWFUpload_0_1
SWF DEBUG: Event: uploadProgress (OPEN): File ID: SWFUpload_0_1
SWF DEBUG: Event: uploadProgress: File ID: SWFUpload_0_1. Bytes: 927. Total: 927
SWF DEBUG: Event: uploadSuccess: File ID: SWFUpload_0_1 Data:
SWF DEBUG: successed
SWF DEBUG: Event: uploadComplete : Upload cycle complete.
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
SWF DEBUG: Event: fileDialogStart : Browsing files. Multi Select. Allowed file types: *.txt;*.xls;*.gif
SWF DEBUG: Select Handler: Received the files selected from the dialog. Processing the file list...
SWF DEBUG: Event: fileQueued : File ID: SWFUpload_0_2
SWF DEBUG: Event: fileDialogComplete : Finished processing selected files. Files selected: 1. Files Queued: 1
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
SWF DEBUG: StartUpload: First file in queue
SWF DEBUG: Event: uploadStart : File ID: SWFUpload_0_2
SWF DEBUG: Global Post Item: op_id=9009
SWF DEBUG: ReturnUploadStart(): File accepted by startUpload event and readied for upload. Starting upload to /ngchnl/webpage/upload/doUpload.jsp for File ID: SWFUpload_0_2
SWF DEBUG: Event: uploadProgress (OPEN): File ID: SWFUpload_0_2
SWF DEBUG: Event: uploadProgress: File ID: SWFUpload_0_2. Bytes: 927. Total: 927
SWF DEBUG: Event: uploadSuccess: File ID: SWFUpload_0_2 Data:
SWF DEBUG: successed
SWF DEBUG: Event: uploadComplete : Upload cycle complete.
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
---SWFUpload Instance Info---
Version: 2.2.0 Beta 2
Movie Name: SWFUpload_0
Settings:
upload_url: /ngchnl/webpage/upload/doUpload.jsp
flash_url: /ngchnl/swpupload/flash/swfupload.swf?swfuploadrnd=772795929
use_query_string: false
requeue_on_error: false
http_success:
file_post_name: Filedata
post_params: [object Object]
file_types: *.txt;*.xls;*.gif
file_types_description: *.txt;*.xls;*.gif
file_size_limit: 10 MB
file_upload_limit: 10
file_queue_limit: 0
debug: true
prevent_swf_caching: true
button_placeholder_id: spanButtonPlaceHolder
button_image_url: /ngchnl/swpupload/images/XPButtonUploadText_61x22.png
button_width: 65
button_height: 29
button_text: <span class="theFont">选择文件</span>
button_text_style: .theFont { font-size: 10; }
button_text_top_padding: 3
button_text_left_padding: 12
button_action: -110
button_disabled: false
custom_settings: [object Object]
Event Handlers:
swfupload_loaded_handler assigned: false
file_dialog_start_handler assigned: false
file_queued_handler assigned: true
file_queue_error_handler assigned: true
upload_start_handler assigned: true
upload_progress_handler assigned: true
upload_error_handler assigned: true
upload_success_handler assigned: true
upload_complete_handler assigned: true
debug_handler assigned: true
SWFUpload.SWFObject Plugin settings:
minimum_flash_version: 9.0.28
swfupload_pre_load_handler assigned: false
swfupload_load_failed_handler assigned: false
SWF DEBUG: SWFUpload Init Complete
SWF DEBUG:
SWF DEBUG: ----- SWF DEBUG OUTPUT ----
SWF DEBUG: Build Number: SWFUPLOAD 2.2.0 Beta 2 2008-10-28
SWF DEBUG: movieName: SWFUpload_0
SWF DEBUG: Upload URL: /ngchnl/webpage/upload/doUpload.jsp
SWF DEBUG: File Types String: *.txt;*.xls;*.gif
SWF DEBUG: Parsed File Types: txt,xls,gif
SWF DEBUG: HTTP Success: 0
SWF DEBUG: File Types Description: *.txt;*.xls;*.gif (*.txt;*.xls;*.gif)
SWF DEBUG: File Size Limit: 10485760 bytes
SWF DEBUG: File Upload Limit: 10
SWF DEBUG: File Queue Limit: 10
SWF DEBUG: Post Params:
SWF DEBUG: op_id=9009
SWF DEBUG: ----- END SWF DEBUG OUTPUT ----
SWF DEBUG:
SWF DEBUG: Event: fileDialogStart : Browsing files. Multi Select. Allowed file types: *.txt;*.xls;*.gif
SWF DEBUG: Select Handler: Received the files selected from the dialog. Processing the file list...
SWF DEBUG: Event: fileQueued : File ID: SWFUpload_0_0
SWF DEBUG: Event: fileQueued : File ID: SWFUpload_0_1
SWF DEBUG: Event: fileDialogComplete : Finished processing selected files. Files selected: 2. Files Queued: 2
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
SWF DEBUG: StartUpload: First file in queue
SWF DEBUG: Event: uploadStart : File ID: SWFUpload_0_0
SWF DEBUG: Global Post Item: op_id=9009
SWF DEBUG: ReturnUploadStart(): File accepted by startUpload event and readied for upload. Starting upload to /ngchnl/webpage/upload/doUpload.jsp for File ID: SWFUpload_0_0
SWF DEBUG: Event: uploadProgress (OPEN): File ID: SWFUpload_0_0
SWF DEBUG: Event: uploadProgress: File ID: SWFUpload_0_0. Bytes: 927. Total: 927
SWF DEBUG: Event: uploadSuccess: File ID: SWFUpload_0_0 Data:
SWF DEBUG: successed
SWF DEBUG: Event: uploadComplete : Upload cycle complete.
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
SWF DEBUG: StartUpload: First file in queue
SWF DEBUG: Event: uploadStart : File ID: SWFUpload_0_1
SWF DEBUG: Global Post Item: op_id=9009
SWF DEBUG: ReturnUploadStart(): File accepted by startUpload event and readied for upload. Starting upload to /ngchnl/webpage/upload/doUpload.jsp for File ID: SWFUpload_0_1
SWF DEBUG: Event: uploadProgress (OPEN): File ID: SWFUpload_0_1
SWF DEBUG: Event: uploadProgress: File ID: SWFUpload_0_1. Bytes: 927. Total: 927
SWF DEBUG: Event: uploadSuccess: File ID: SWFUpload_0_1 Data:
SWF DEBUG: successed
SWF DEBUG: Event: uploadComplete : Upload cycle complete.
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
SWF DEBUG: Event: fileDialogStart : Browsing files. Multi Select. Allowed file types: *.txt;*.xls;*.gif
SWF DEBUG: Select Handler: Received the files selected from the dialog. Processing the file list...
SWF DEBUG: Event: fileQueued : File ID: SWFUpload_0_2
SWF DEBUG: Event: fileDialogComplete : Finished processing selected files. Files selected: 1. Files Queued: 1
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
SWF DEBUG: StartUpload: First file in queue
SWF DEBUG: Event: uploadStart : File ID: SWFUpload_0_2
SWF DEBUG: Global Post Item: op_id=9009
SWF DEBUG: ReturnUploadStart(): File accepted by startUpload event and readied for upload. Starting upload to /ngchnl/webpage/upload/doUpload.jsp for File ID: SWFUpload_0_2
SWF DEBUG: Event: uploadProgress (OPEN): File ID: SWFUpload_0_2
SWF DEBUG: Event: uploadProgress: File ID: SWFUpload_0_2. Bytes: 927. Total: 927
SWF DEBUG: Event: uploadSuccess: File ID: SWFUpload_0_2 Data:
SWF DEBUG: successed
SWF DEBUG: Event: uploadComplete : Upload cycle complete.
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: message: 'document.getElementById(...)' 为空或不是对象
EXCEPTION: number: -2146823281
EXCEPTION: description: 'document.getElementById(...)' 为空或不是对象
136 楼
zhongxiaoyi738
2009-09-07
怎么我这里 上传文件的时候不能显示进度条
<%
/**
* 多文件上传
*/
%>
<html>
<%@ page contentType="text/html; charset=GBK"%>
<script type="text/javascript" src="<%=request.getContextPath()%>/swpupload/js/swfupload.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/swpupload/js/swfupload.swfobject.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/swpupload/js/swfupload.queue.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/swpupload/js/fileprogress.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/swpupload/js/handlers.js"></script>
<ai:title value="多文件上传"/>
<script language="JavaScript">
var swfu;
window.onload = function () {
var settings = {
flash_url : "<%=request.getContextPath()%>/swpupload/flash/swfupload.swf",
upload_url: "<%=request.getContextPath()%>/webpage/upload/doUpload.jsp",
post_params:
{
"op_id" : "9009"
},
file_size_limit : "10 MB",
file_types : "*.txt;*.xls;*.gif",
file_types_description : "*.txt;*.xls;*.gif",
file_upload_limit : 10,
file_queue_limit : 0,
custom_settings : {
progressTarget : "fsUploadProgress",
cancelButtonId : "btnCancel",
uploadButtonId : "btnUpload",
myFileListTarget : "idFileList"
},
debug: true,
// Button settings
button_image_url: "<%=request.getContextPath()%>/swpupload/images/XPButtonUploadText_61x22.png",
button_width: "65",
button_height: "29",
button_placeholder_id: "spanButtonPlaceHolder",
button_text: '<span class="theFont">选择文件</span>',
button_text_style: ".theFont { font-size: 10; }",
button_text_left_padding: 12,
button_text_top_padding: 3,
// The event handler functions are defined in handlers.js
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
};
swfu = new SWFUpload(settings);
}
</script>
<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>批量上传 (支持的文件类型:*.txt;*.xls;*.gif;单个相片最大不能超过:10 MB)</STRONG>
</td><td class="DH2" align="right"></td>
</tr>
</table>
<div id="content">
<form id="form1" action="<%=request.getContextPath()%>/webpage/upload/doUpload.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>
<%
/**
* 多文件上传
*/
%>
<html>
<%@ page contentType="text/html; charset=GBK"%>
<script type="text/javascript" src="<%=request.getContextPath()%>/swpupload/js/swfupload.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/swpupload/js/swfupload.swfobject.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/swpupload/js/swfupload.queue.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/swpupload/js/fileprogress.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/swpupload/js/handlers.js"></script>
<ai:title value="多文件上传"/>
<script language="JavaScript">
var swfu;
window.onload = function () {
var settings = {
flash_url : "<%=request.getContextPath()%>/swpupload/flash/swfupload.swf",
upload_url: "<%=request.getContextPath()%>/webpage/upload/doUpload.jsp",
post_params:
{
"op_id" : "9009"
},
file_size_limit : "10 MB",
file_types : "*.txt;*.xls;*.gif",
file_types_description : "*.txt;*.xls;*.gif",
file_upload_limit : 10,
file_queue_limit : 0,
custom_settings : {
progressTarget : "fsUploadProgress",
cancelButtonId : "btnCancel",
uploadButtonId : "btnUpload",
myFileListTarget : "idFileList"
},
debug: true,
// Button settings
button_image_url: "<%=request.getContextPath()%>/swpupload/images/XPButtonUploadText_61x22.png",
button_width: "65",
button_height: "29",
button_placeholder_id: "spanButtonPlaceHolder",
button_text: '<span class="theFont">选择文件</span>',
button_text_style: ".theFont { font-size: 10; }",
button_text_left_padding: 12,
button_text_top_padding: 3,
// The event handler functions are defined in handlers.js
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
};
swfu = new SWFUpload(settings);
}
</script>
<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>批量上传 (支持的文件类型:*.txt;*.xls;*.gif;单个相片最大不能超过:10 MB)</STRONG>
</td><td class="DH2" align="right"></td>
</tr>
</table>
<div id="content">
<form id="form1" action="<%=request.getContextPath()%>/webpage/upload/doUpload.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>
135 楼
sbswcidr
2009-08-12
:cry:
太感谢了。。。
找了三天没找到的东西。。。
终于找到了。。
我试了一下。。我用的是struts2上传的。。发现有几处地方有问题
1.在action里面要定义这三个属性才能接收到文件的相关信息,不知道可否修改这个属性的名字。不知道在哪修改。
2.如果上传的文件文件名包含中文字符的话。上传不了。这个可能是要转编码之类的。我还没试过。
3.一切准备好了之后我开始上传了,可是发现文件是有传上去了。。而且其它的业务数据也有保存进去了。可是界面上还是显示等待上传字样,于是我认真仔细看了一下原来是这样子的啊,晕,心太急了
是因为我上传是提交到后台action处理的,所以一开始没注意看UploadFileExampleSubmit.jsp这段代码
我Action返回的是null,后来改了一下就OK了。
应改为
非常感谢LZ。。。您是好人啊。。。。



找了三天没找到的东西。。。
终于找到了。。
我试了一下。。我用的是struts2上传的。。发现有几处地方有问题
1.在action里面要定义这三个属性才能接收到文件的相关信息,不知道可否修改这个属性的名字。不知道在哪修改。
/** 文件对象 */ private List<File> filedata; /** 文件名 */ private List<String> filedataFileName; /** 文件内容类型 */ private List<String> filedataContentType; /** * @return the filedata */ public List<File> getFiledata() { return filedata; } /** * @param filedata the filedata to set */ public void setFiledata(List<File> filedata) { this.filedata = filedata; } /** * @return the filedataFileName */ public List<String> getFiledataFileName() { return filedataFileName; } /** * @param filedataFileName the filedataFileName to set */ public void setFiledataFileName(List<String> filedataFileName) { this.filedataFileName = filedataFileName; } /** * @return the filedataContentType */ public List<String> getFiledataContentType() { return filedataContentType; } /** * @param filedataContentType the filedataContentType to set */ public void setFiledataContentType(List<String> filedataContentType) { this.filedataContentType = filedataContentType; }
2.如果上传的文件文件名包含中文字符的话。上传不了。这个可能是要转编码之类的。我还没试过。
3.一切准备好了之后我开始上传了,可是发现文件是有传上去了。。而且其它的业务数据也有保存进去了。可是界面上还是显示等待上传字样,于是我认真仔细看了一下原来是这样子的啊,晕,心太急了
是因为我上传是提交到后台action处理的,所以一开始没注意看UploadFileExampleSubmit.jsp这段代码
if(pageErrorInfo==null){ out.print("successed"); }
我Action返回的是null,后来改了一下就OK了。
应改为
public String saveFiles(){ try{ HttpServletResponse response = ServletActionContext.getResponse(); //此处得到文件执行上传操作,并保存相关的业务数据 response.getWriter().write("successed"); }catch(Exception e){ e.printStackTrace(); } return null; }
非常感谢LZ。。。您是好人啊。。。。
134 楼
yuezhou1226
2009-05-28
SWFUpload is not a constructor
onload()()UploadFi...ample.jsp (第 64 行)
[Break on this error] swfu = new SWFUpload(settings);
为什么我老是出现这个错误啊?实现是找不出哪儿错了!
onload()()UploadFi...ample.jsp (第 64 行)
[Break on this error] swfu = new SWFUpload(settings);
为什么我老是出现这个错误啊?实现是找不出哪儿错了!
发表评论
-
Java的内存机制
2016-08-22 13:27 5621.Java的内存机制 Java 把内存划分成两 ... -
监听域对象中属性的变更的监听器
2016-07-18 19:06 1772监听域对象中属性的变更的监听器 域对象中属性 ... -
HttpSessionActivationListener
2016-07-18 18:46 664HttpSessionActivationListe ... -
Web容器监听器(实现在线统计人数,踢人)
2016-07-18 10:48 963Web容器监听器(实现在线统计人数,踢人) Servl ... -
HttpSessionBindingListener接口
2016-07-18 10:29 655HttpSessionBindingListene ... -
ServletRequestAttributeListener接口
2016-07-17 22:24 8492. HttpSessionAttribut ... -
Servlet3中异步Servlet特性介绍
2016-07-17 15:50 859Servlet3中异步Servlet特性介绍 ... -
HttpSessionAttributeListener
2016-07-15 17:49 721HttpSessionAttributeListener ... -
使用ServletContextAttributeListener
2016-07-15 16:47 859使用ServletContextAttr ... -
ServletRequestListener
2016-07-15 16:25 615ServletRequestListener接口 ... -
HttpSessionListener
2016-07-15 14:56 647HttpSessionListener接口 M ... -
ServletContextListener 接口
2016-07-15 12:16 640在 Servlet API 中有一个 Se ... -
ReflectASM,高性能的反射
2016-04-29 17:19 970http://www.oschina.net/p/r ... -
Java多线程与静态方法
2016-04-26 11:52 860Java多线程与静态方法 在多线程中使用静态方法会发生什么 ... -
log4j日志输出格式
2016-04-12 20:58 1126log4j日志输出格式 在LOG4J的配置文件中,l ... -
Servlet3.0
2016-04-12 16:58 714一、Servlet3.0介绍 Servlet3 ... -
log4j2 使用详解
2016-04-12 14:14 1480log4j2 使用详解 转载自 Blog of ... -
Eclipse jar打包和命令行运行
2016-04-08 10:44 2977?Eclipse jar打包和命令行运行 第1步: ... -
GRAPHICSMAGICK+IM4JAVA错误Cannot run program "gm": error=2
2015-05-19 15:27 4126在通过 GRAPHICSMAGICK+IM4JAVA ... -
GraphicsMagick安装、实时生成缩略图
2015-05-19 13:39 2443GraphicsMagick安装、实时生成缩略图 ...
相关推荐
本解决方案将详细介绍如何使用SWFUpload实现多文件WEB批量上传的步骤,并解决可能遇到的问题。 首先,SWFUpload是一个开源的JavaScript库,它使用Flash技术来处理文件上传。由于Flash支持拖放和多文件选择,因此...
毕业设计选题 -未来生鲜运输车设计.pptx
内容概要:本文详细探讨了基于樽海鞘算法(SSA)优化的极限学习机(ELM)在回归预测任务中的应用,并与传统的BP神经网络、广义回归神经网络(GRNN)以及未优化的ELM进行了性能对比。首先介绍了ELM的基本原理,即通过随机生成输入层与隐藏层之间的连接权重及阈值,仅需计算输出权重即可快速完成训练。接着阐述了SSA的工作机制,利用樽海鞘群体觅食行为优化ELM的输入权重和隐藏层阈值,从而提高模型性能。随后分别给出了BP、GRNN、ELM和SSA-ELM的具体实现代码,并通过波士顿房价数据集和其他工业数据集验证了各模型的表现。结果显示,SSA-ELM在预测精度方面显著优于其他三种方法,尽管其训练时间较长,但在实际应用中仍具有明显优势。 适合人群:对机器学习尤其是回归预测感兴趣的科研人员和技术开发者,特别是那些希望深入了解ELM及其优化方法的人。 使用场景及目标:适用于需要高效、高精度回归预测的应用场景,如金融建模、工业数据分析等。主要目标是提供一种更为有效的回归预测解决方案,尤其是在处理大规模数据集时能够保持较高的预测精度。 其他说明:文中提供了详细的代码示例和性能对比图表,帮助读者更好地理解和复现实验结果。同时提醒使用者注意SSA参数的选择对模型性能的影响,建议进行参数敏感性分析以获得最佳效果。
2025年中国生成式AI大会PPT(4-1)
内容概要:本文详细介绍了基于Simulink平台构建无刷直流电机(BLDC)双闭环调速系统的全过程。首先阐述了双闭环控制系统的基本架构,即外层速度环和内层电流环的工作原理及其相互关系。接着深入探讨了PWM生成模块的设计,特别是占空比计算方法的选择以及三角波频率的设定。文中还提供了详细的电机参数设置指导,如转动惯量、电感、电阻等,并强调了参数选择对系统性能的影响。此外,针对PI控制器的参数整定给出了具体的公式和经验值,同时分享了一些实用的调试技巧,如避免转速超调、处理启动抖动等问题的方法。最后,通过仿真实验展示了系统的稳定性和鲁棒性,验证了所提出方法的有效性。 适用人群:从事电机控制研究的技术人员、自动化工程领域的研究生及科研工作者。 使用场景及目标:适用于需要深入了解和掌握无刷直流电机双闭环调速系统设计与优化的人群。主要目标是帮助读者学会利用Simulink进行BLDC电机控制系统的建模、仿真和参数优化,从而提高系统的稳定性和响应速度。 其他说明:文章不仅提供了理论知识,还包括了许多实践经验和技术细节,有助于读者更好地理解和应用相关技术。
内容概要:本文详细介绍了西门子S7-1200 PLC与施耐德ATV310/312变频器通过Modbus RTU进行通讯的具体实现步骤和调试技巧。主要内容涵盖硬件接线、通讯参数配置、控制启停、设定频率、读取运行参数的方法以及常见的调试问题及其解决方案。文中提供了具体的代码示例,帮助读者理解和实施通讯程序。此外,还强调了注意事项,如地址偏移量、数据格式转换和超时匹配等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要将西门子PLC与施耐德变频器进行集成的工作人员。 使用场景及目标:适用于需要通过Modbus RTU协议实现PLC与变频器通讯的工程项目。目标是确保通讯稳定可靠,掌握解决常见问题的方法,提高调试效率。 其他说明:文中提到的实际案例和调试经验有助于读者避免常见错误,快速定位并解决问题。建议读者在实践中结合提供的代码示例和调试工具进行操作。
内容概要:本文详细介绍了如何使用Verilog在FPGA上实现IIC(Inter-Integrated Circuit)主从机驱动。主要内容包括从机和主机的设计,特别是状态机的实现、寄存器读取、时钟分频策略、SDA线的三态控制等关键技术。文中还提供了详细的代码片段,展示了从机地址匹配逻辑、主机时钟生成逻辑、顶层模块的连接方法以及仿真实验的具体步骤。此外,文章讨论了一些常见的调试问题,如总线竞争、时序不匹配等,并给出了相应的解决方案。 适合人群:具备一定FPGA开发基础的技术人员,尤其是对IIC协议感兴趣的嵌入式系统开发者。 使用场景及目标:适用于需要在FPGA平台上实现高效、可靠的IIC通信的应用场景。主要目标是帮助读者掌握IIC协议的工作原理,能够独立完成IIC主从机系统的开发和调试。 其他说明:文章不仅提供了理论讲解,还包括了大量的实战经验和代码实例,有助于读者更好地理解和应用所学知识。同时,文章还提供了一个思考题,引导读者进一步探索多主设备仲裁机制的设计思路。
内容概要:本文介绍了一款基于C#开发的拖拽式Halcon可视化抓边、抓圆控件,旨在简化机器视觉项目中的测量任务。该控件通过拖拽操作即可快速生成测量区域,自动完成边缘坐标提取,并提供实时反馈。文中详细描述了控件的工作原理和技术细节,如坐标系转换、卡尺生成、边缘检测算法封装以及动态参数调试等功能。此外,还讨论了一些常见问题及其解决方案,如坐标系差异、内存管理等。 适合人群:从事机器视觉开发的技术人员,尤其是熟悉C#和Halcon的开发者。 使用场景及目标:适用于需要频繁进行边缘和圆形特征测量的工业自动化项目,能够显著提高测量效率并减少编码工作量。主要目标是将复杂的测量任务转化为简单的拖拽操作,使非专业人员也能轻松完成测量配置。 其他说明:该控件已开源发布在GitHub上,提供了完整的源代码和详细的使用指南。未来计划扩展更多高级功能,如自动路径规划和亚像素级齿轮齿距检测等。
内容概要:本文详细介绍了西门子200Smart PLC与维纶触摸屏在某疫苗车间控制系统的具体应用,涵盖配液、发酵、纯化及CIP清洗四个主要工艺环节。文中不仅展示了具体的编程代码和技术细节,还分享了许多实战经验和调试技巧。例如,在配液罐中,通过模拟量处理确保温度和液位的精确控制;发酵罐部分,着重讨论了PID参数整定和USS通讯控制变频器的方法;纯化过程中,强调了双PID串级控制的应用;CIP清洗环节,则涉及复杂的定时器逻辑和阀门联锁机制。此外,文章还提到了一些常见的陷阱及其解决方案,如通讯干扰、状态机切换等问题。 适合人群:具有一定PLC编程基础的技术人员,尤其是从事工业自动化领域的工程师。 使用场景及目标:适用于需要深入了解PLC与触摸屏集成控制系统的工程师,帮助他们在实际项目中更好地理解和应用相关技术和方法,提高系统的稳定性和可靠性。 其他说明:文章提供了大量实战经验和代码片段,有助于读者快速掌握关键技术点,并避免常见错误。同时,文中提到的一些优化措施和调试技巧对提升系统性能非常有帮助。
计算机网络课程的结课设计是使用思科模拟器搭建一个中小型校园网,当时花了几天时间查阅相关博客总算是做出来了,现在免费上传CSDN,希望小伙伴们能给博客一套三连支持
《芋道开发指南文档-2023-10-27更新》是针对软件开发者和IT专业人士的一份详尽的资源集合,旨在提供最新的开发实践、范例代码和最佳策略。这份2023年10月27日更新的文档集,包含了丰富的模板和素材,帮助开发者在日常工作中提高效率,保证项目的顺利进行。 让我们深入探讨这份文档的可能内容。"芋道"可能是一个开源项目或一个专业的技术社区,其开发指南涵盖了多个方面,例如: 1. **编程语言指南**:可能包括Java、Python、JavaScript、C++等主流语言的编码规范、最佳实践以及常见问题的解决方案。 2. **框架与库的应用**:可能会讲解React、Vue、Angular等前端框架,以及Django、Spring Boot等后端框架的使用技巧和常见应用场景。 3. **数据库管理**:涵盖了SQL语言的基本操作,数据库设计原则,以及如何高效使用MySQL、PostgreSQL、MongoDB等数据库系统。 4. **版本控制**:详细介绍了Git的工作流程,分支管理策略,以及与其他开发工具(如Visual Studio Code、IntelliJ IDEA)的集成。 5. **持续集成与持续部署(CI/CD)**:包括Jenkins、Travis CI、GitHub Actions等工具的配置和使用,以实现自动化测试和部署。 6. **云服务与容器化**:可能涉及AWS、Azure、Google Cloud Platform等云计算平台的使用,以及Docker和Kubernetes的容器化部署实践。 7. **API设计与测试**:讲解RESTful API的设计原则,Swagger的使用,以及Postman等工具进行API测试的方法。 8. **安全性与隐私保护**:涵盖OAuth、JWT认证机制,HTTPS安全通信,以及防止SQL注入、
内容概要:本文介绍了一种先进的综合能源系统优化调度模型,该模型将风电、光伏、光热发电等新能源与燃气轮机、燃气锅炉等传统能源设备相结合,利用信息间隙决策(IGDT)处理不确定性。模型中引入了P2G(电转气)装置和碳捕集技术,实现了碳经济闭环。通过多能转换和储能系统的协同调度,提高了系统的灵活性和鲁棒性。文中详细介绍了模型的关键组件和技术实现,包括IGDT的鲁棒性参数设置、P2G与碳捕集的协同控制、储能系统的三维协同调度等。此外,模型展示了在极端天气和负荷波动下的优异表现,显著降低了碳排放成本并提高了能源利用效率。 适合人群:从事能源系统优化、电力调度、碳交易等相关领域的研究人员和工程师。 使用场景及目标:适用于需要处理多种能源形式和不确定性的综合能源系统调度场景。主要目标是提高系统的灵活性、鲁棒性和经济效益,减少碳排放。 其他说明:模型具有良好的扩展性,可以通过修改配置文件轻松集成新的能源设备。代码中包含了详细的注释和公式推导,便于理解和进一步改进。
毕业设计的论文撰写、终期答辩相关的资源
该是一个在 Kaggle 上发布的数据集,专注于 2024 年出现的漏洞(CVE)信息。以下是关于该数据集的详细介绍:该数据集收集了 2024 年记录在案的各类漏洞信息,涵盖了漏洞的利用方式(Exploits)、通用漏洞评分系统(CVSS)评分以及受影响的操作系统(OS)。通过整合这些信息,研究人员和安全专家可以全面了解每个漏洞的潜在威胁、影响范围以及可能的攻击途径。数据主要来源于权威的漏洞信息平台,如美国国家漏洞数据库(NVD)等。这些数据经过整理和筛选后被纳入数据集,确保了信息的准确性和可靠性。数据集特点:全面性:涵盖了多种操作系统(如 Windows、Linux、Android 等)的漏洞信息,反映了不同平台的安全状况。实用性:CVSS 评分提供了漏洞严重程度的量化指标,帮助用户快速评估漏洞的优先级。同时,漏洞利用信息(Exploits)为安全研究人员提供了攻击者可能的攻击手段,有助于提前制定防御策略。时效性:专注于 2024 年的漏洞数据,反映了当前网络安全领域面临的新挑战和新趋势。该数据集可用于多种研究和实践场景: 安全研究:研究人员可以利用该数据集分析漏洞的分布规律、攻击趋势以及不同操作系统之间的安全差异,为网络安全防护提供理论支持。 机器学习与数据分析:数据集中的结构化信息适合用于机器学习模型的训练,例如预测漏洞的 CVSS 评分、识别潜在的高危漏洞等。 企业安全评估:企业安全团队可以参考该数据集中的漏洞信息,结合自身系统的实际情况,进行安全评估和漏洞修复计划的制定。
内容概要:本文档作为建模大赛的入门指南,详细介绍了建模大赛的概念、类型、竞赛流程、核心步骤与技巧,并提供实战案例解析。文档首先概述了建模大赛,指出其以数学、计算机技术为核心,主要分为数学建模、3D建模和AI大模型竞赛三类。接着深入解析了数学建模竞赛,涵盖组队策略(如三人分别负责建模、编程、论文写作)、时间安排(72小时内完成全流程)以及问题分析、模型建立、编程实现和论文撰写的要点。文中还提供了物流路径优化的实战案例,展示了如何将实际问题转化为图论问题并采用Dijkstra或蚁群算法求解。最后,文档推荐了不同类型建模的学习资源与工具,并给出了新手避坑建议,如避免过度复杂化模型、重视可视化呈现等。; 适合人群:对建模大赛感兴趣的初学者,特别是高校学生及希望参与数学建模竞赛的新手。; 使用场景及目标:①了解建模大赛的基本概念和分类;②掌握数学建模竞赛的具体流程与分工;③学习如何将实际问题转化为数学模型并求解;④获取实战经验和常见错误规避方法。; 其他说明:文档不仅提供了理论知识,还结合具体实例和代码片段帮助读者更好地理解和实践建模过程。建议新手从中小型赛事开始积累经验,逐步提升技能水平。
该资源为protobuf-6.30.1-cp310-abi3-win32.whl,欢迎下载使用哦!
内容概要:本文档详细介绍了基于Linux系统的大数据环境搭建流程,涵盖从虚拟机创建到集群建立的全过程。首先,通过一系列步骤创建并配置虚拟机,包括设置IP地址、安装MySQL数据库等操作。接着,重点讲解了Ambari的安装与配置,涉及关闭防火墙、设置免密登录、安装时间同步服务(ntp)、HTTP服务以及配置YUM源等关键环节。最后,完成了Ambari数据库的创建、JDK的安装、Ambari server和agent的部署,并指导用户创建集群。整个过程中还提供了针对可能出现的问题及其解决方案,确保各组件顺利安装与配置。 适合人群:具有Linux基础操作技能的数据工程师或运维人员,尤其是那些需要构建和管理大数据平台的专业人士。 使用场景及目标:适用于希望快速搭建稳定可靠的大数据平台的企业或个人开发者。通过本指南可以掌握如何利用Ambari工具自动化部署Hadoop生态系统中的各个组件,从而提高工作效率,降低维护成本。 其他说明:文档中包含了大量具体的命令行指令和配置细节,建议读者按照顺序逐步操作,并注意记录下重要的参数值以便后续参考。此外,在遇到问题时可参照提供的解决方案进行排查,必要时查阅官方文档获取更多信息。
内容概要:本文详细介绍了如何在MATLAB R2018A中使用最小均方(LMS)自适应滤波算法对一维时间序列信号进行降噪处理,特别是针对心电图(ECG)信号的应用。首先,通过生成模拟的ECG信号并加入随机噪声,创建了一个带有噪声的时间序列。然后,实现了LMS算法的核心部分,包括滤波器阶数、步长参数的选择以及权重更新规则的设计。文中还提供了详细的代码示例,展示了如何构建和训练自适应滤波器,并通过图形化方式比较了原始信号、加噪信号与经过LMS处理后的降噪信号之间的差异。此外,作者分享了一些实用的经验和技术要点,如参数选择的影响、误差曲线的解读等。 适用人群:适用于具有一定MATLAB编程基础并对信号处理感兴趣的科研人员、工程师或学生。 使用场景及目标:本教程旨在帮助读者掌握LMS算法的基本原理及其在实际项目中的应用方法,特别是在生物医学工程、机械故障诊断等领域中处理含噪信号的任务。同时,也为进一步探索其他类型的自适应滤波技术和扩展到不同的信号处理任务奠定了基础。 其他说明:尽管LMS算法在处理平稳噪声方面表现出色,但在面对突发性的强干扰时仍存在一定局限性。因此,在某些特殊场合下,可能需要与其他滤波技术相结合以获得更好的效果。
内容概要:本文详细介绍了基于TMS320F2812 DSP芯片的光伏并网逆变器设计方案,涵盖了主电路架构、控制算法、锁相环实现、环流抑制等多个关键技术点。首先,文中阐述了双级式结构的主电路设计,前级Boost升压将光伏板输出电压提升至约600V,后级采用三电平NPC拓扑的IGBT桥进行逆变。接着,深入探讨了核心控制算法,如电流PI调节器、锁相环(SOFGI)、环流抑制等,并提供了详细的MATLAB仿真模型和DSP代码实现。此外,还特别强调了PWM死区时间配置、ADC采样时序等问题的实际解决方案。最终,通过实验验证,该方案实现了THD小于3%,MPPT效率达98.7%,并有效降低了并联环流。 适合人群:从事光伏并网逆变器开发的电力电子工程师和技术研究人员。 使用场景及目标:适用于光伏并网逆变器的研发阶段,帮助工程师理解和实现高效稳定的逆变器控制系统,提高系统的性能指标,减少开发过程中常见的错误。 其他说明:文中提供的MATLAB仿真模型和DSP代码可以作为实际项目开发的重要参考资料,有助于缩短开发周期,提高成功率。