swfupload组件(swfupload 能在多个地方使用吗)
本文目录
- swfupload 能在多个地方使用吗
- asp 批量上传一个文件夹里的所有图片
- You need the Flash Player to use SWFUpload 一打开网页就出现是什么意思啊
- 请问懂后台服务器脚本的大侠,asp能不能使用SWFUpload实现无刷新上传图片 注意:是asp,而不是aspx
- swfupload支持ie11么
- 用SWFUpload上传多个文件时怎么获取上传文件的个数
- swfupload 官网上的最新版本
- SWFUpload控件可以设置图片像素大小吗
swfupload 能在多个地方使用吗
一、准备工作
从官网上下载发布版v2.2.0.1,仅取下载文件中的SWFUpload.js和swfupload.swf即可,另外可利用官网上的DEMO,从中获取一张PNG图片。
swfupload.swf是上传组件的核心,一个特制的FLASH,具有浏览文件,上传文件的功能,以按钮形式体现在用户眼前,上文中提及的PNG图片浮在按钮上,可增强视觉效果。SWFUpload.js与swfupload.swf交互,向开发者提供操作接口。
二、使用步骤
文档中指出,SWFUpload并不是拖放式的上传控件,它需要使用者具备JavaScript(以下简称JS)和DOM的知识,进行UI界面的设计。
点击“选择文件”按钮,文件对话框即刻跳出,用户选择多个文件后,对话框立即关闭,选择的文件进入排队序列,等待上传。当调用SWFUpload 对象的startUpload方法执行上传命令。在此例中,swfu已经实例化为SWFUpload 对象,故可以在JSP中添加一个按钮,在其点击事件中调其该方法。在JSP中添加代码:
《button onclick="swfu.startUpload()"》上传《/button》
虽如此,但文件没有上传到服务器上,至少客户端不知道上传的目的地。
3.指定客户端将上传信息发送至服务器的URL——struts2登场
swfupload将upload_url属性值作为客户端将文件上传请求信息发送至服务器的URL,读者可理解为struts2表单中的action属性值,upload_url属性值默认为web项目的主页。笔者仅介绍struts2如何接收请求。
struts2已经实现了上传功能,笔者不作详细介绍(由于struts2实现了无缝整合,开发者仅需要将上传的临时进行复制即可,其使用方法易于掌握)。
使用struts2的上传功能,开发者需要知道file标签的name属性值,在此基础上,编写action类即可,并在struts.xml文件中配置名字其名字。在swfupload中,file标签的name属性等价为file_post_name属性,其默认值为Filedata。至此,具备了URL和name属性值,便可开始struts2整合之旅。
首先将action的名字赋值给 swfupload中upload_url属性。接着编写自己的action类,类中包含两个属性Filedata和Filename,Filedata和file_post_name值相同(文档推荐使用默认值Filedata)。 Filedata指向了struts2上传的临时文件路径(action中的execute函数执行完毕,临时文件将被删除),Filename为上传文件的名字。Execute函数实现将临时文件复制到指定的目录(此例将它放在WEB项目下bin目录下的upload中)。此例action的名字为“upload”,在JSP中将upload_url属性赋值为upload。
4.添加捕获事件函数
swfupload仅实现了后台操作,前台的处理空间留给了开发者,它采用事件触发机制,让开发者捕获特定事件,并鼓励开发者自定义对应的事件处理函数(笔者定义为:捕获事件函数)进行相应处理。即当swfupload内部某一特定事件发生,便触发JS函数,JS函数通过回调机制将函数参数继续传入自定义的JS函数中。Swfupload通过固定的事件函数名属性值寻找自定义的JS函数,所以在初始化工作中,将自定义的JS函数名赋值给swfupload指定的对应属性即可。
比如,当你选择上传文件后,文件对话框随即关闭,产生关闭对话框完成的事件,内置的fileDialogComplete函数被触发,函数执行完必要的操作后,将整个参数信息传入file_dialog_complete_handler属性值对应的JS函数。所以,开发者仅需将自定义的JS函数名赋值给file_dialog_complete_handler属性即可。Swfupload向外提供的所有事件以及对应的函数定义,文档有详细说明。笔者将“添加捕获XXX事件函数”定义为:自定义JS函数用来捕捉XXX事件,XXX表示swfupload内部捕获事件函数,并函数名赋值给XXX事件对应的属性。比如“添加捕获fileDialogComplete事件函数”表示先自定义JS函数(假设函数名为fileDialogCompleteHandler),用来捕获fileDialogComplete事件,并且将fileDialogCompleteHandler赋值给fileDialogComplete事件对应的属性file_dialog_complete_handler。
为便于管理,笔者建议新建一个JS文件,专门用来存放捕获事件函数,此例为handler.js,注意在JSP中要将其引入。
《script type="text/javascript" src="handler.js"》《/script》
5.实现批量上传
swfupload不自动批量上传,读者可以尝试选择两个文件点击上传按钮,在服务器端却仅有一个文件,当再次点击上传按钮后,服务器端又多出一个文件。Swfupload虽支持批量上传,但本质仍是单个文件依次上传,这有别于传统设计模式,但其益处却避免了开发者编写大量代码,迭代分析所选文件。
文档指出,添加捕获uploadComplete事件函数(其对应属性为upload_complete_handler),并在其中调用上传函数startUpload,通过递归的方式实现批量上传,即在某个文件上传完成后,再次启动文件上传。此例,该函数被定义为uploadComplete。
在JSP中添加upload_complete_handler属性并赋值为uploadComplete。
6.显示上传文件列表
显示出上传文件列表能够增强用户体验,因为用户将看见选择的文件信息。下文介绍将选择的文件以表格形式显示出来,每行内容为依次为文件名、大小、状态(QUEUED、ERROR、COMPLETE)。
读者不妨在文档中仔细查找是否存在其参数包含file类型集合的API函数,其结果必然徒劳,因为只有参数为file类型的API函数。这在上文已有介绍:swfupload本质依靠单个文件形式上传。该知识点对于对于灵活掌握swfupload举足轻重。故当选择某一文件后,在表格追加显示该文件信息,在文件对话框关闭后,显示表格(表格初始状态为隐藏,在JSP中定义)。
三、从页面跳转到请求流程
此时,本应划上句号,因为所选文件已经上传到upload目录下,但笔者还是想就部分朋友反映“上传完成后,页面不跳转”现象谈谈个人观点。页面不跳转是一个不争的事实,你大可反复尝试。难道这意味着struts2页面跳转功能失效呢?笔者在没搞清楚swfupload原理前,也为之困扰。struts2页面跳转功能仍然良好地在运转,不过它将跳转的页面回响至swfupload,swfupload用内置函数uploadSuccess捕获。对此,理解用户从访问上传页面到页面跳转的整个请求过程至关重要。
首先浏览器访问WEB服务器,打开上传页面,这个过程和打开网页原理相同。当点击“选择文件”按钮后,浏览器通过JS启用swfupload后退出舞台,flash登场。当点击“上传”按钮,flash模拟浏览器向WEB服务器发起连接(新开session),向WEB服务器发送上传信息。可见,当WEB服务器返回信息,目的地不是浏览器,而是flash。整个过程,flash始终和JS紧密交融,将发生的事件通知JS,给开发者留下了足够的编程空间。这不得不赞叹swfupload,将flash设计得淋漓尽致,将JS、WEB服务器、浏览器天衣无缝融入一体。
***隐藏网址***
上传成功事件对应的内置函数为uploadSuccess(file object, server data, received resp***e),其中第一个参数为上传的文件,第二个参数为服务器返回的数据,第三个参数为布尔值,从字面上看,估计表示是否收到信息。struts2跳转的页面以HTML代码形式赋值给第二个参数,故可在该捕获事件函数中,置入document.write(server_data)语句,实现页面跳转。
笔者认为swfupload并不希望开发者这样做,因为单个文件的上传机制将导致出现上传完一个文件页面就跳转一次的荒唐现象。其实,只要任何时候调用document.write方法,swfupload立即失效,切忌这样做。
对于实现批量上传成功页面跳转的方法,笔者建议可将server_data缓存,在捕获uploadSuccess事件函数中,如果上传队列为空(getStats().files_queued 》 0),再用document.write向swfupload say Goodbye。
asp 批量上传一个文件夹里的所有图片
想只指定文件夹路径,而不选择文件就实现文件的批量上传,不用控件是无法实现的。
服务器端不可能去扫描到你客户端的硬盘中的数据,除非你在浏览网页时安装activex控件,由这个控件来扫描你的硬盘中指定文件夹路径下的文件
你现在想实现的,就是批是把一个文件夹中的图片全部上传到服务器,那么又要无组件上传,就肯定不能用activex控件了。
我提供的解决办法就是:使用flash进行文件上传,像swfupload这种flash文件上传组件,只显示文件浏览一个按钮,你可以在代码中设置是只允许选择一个文件进行上传,还是选择多个文件进行批量上传。上传是无刷新的效果,还可以实时显示上传进度。
如果你觉得这种方案可以满足你的要求(实际上就只是比你的需求多了一个选择文件的步骤),swfupload的具体代码,可以QQ我17595923,我可以把我项目中用到的代码以及swfupload中文手发给你。
----
另外补充一下:楼上几位说的批量上传组件,早就有了,只不过与楼主的需求不太适合。但用flash来实现,那就是天衣无缝了,而且也已经有现成的flash上传组件,swfupload这么好的工具,我的项目中也早就用上了。其实楼主的需求,最麻烦的是客户端的文件选择,而不是服务器端的上传代码。
所以,使用swfupload这个上传组件最方便实用,只是几个js文件,几个flash文件,就实现了客户端的文件批量选择,并且还是无刷新数据上传,实时显示文件上传进度。
服务端的ASP代码,随便用一个无组件上传都OK,像无惧文件上传类、风声无组件上传类等都是很好的ASP无组件上传类。
You need the Flash Player to use SWFUpload 一打开网页就出现是什么意思啊
SWFUpload
是一个基于flash的上传组件,这个是浏览器在没有flash时,它给的提示,你只需要安装个flash
player就可以了。当然也有可能是你的flash
player版本过低。
如果还有提示,建议你换个浏览器试试。如果你的所有浏览器都有提示,你让其他人打开试试,如果还有,那说明是那个网站的原因,你也就可以不用纠结了。
请问懂后台服务器脚本的大侠,asp能不能使用SWFUpload实现无刷新上传图片 注意:是asp,而不是aspx
所谓的无组件上传类大多数都是利用Adodb.Stream这个组件来实现文件上传的,再结合ajax就能实现无刷新上传了。所以只要服务器支持并且安装了相关的组件,那就没问题,这跟所用的脚本语言是没有直接关系的,asp.net、php、jsp等能用的,asp也能用。
swfupload支持ie11么
swfupload是一个不错的文件上传组件,最近参与了一个使用了此控件的项目,测试中发现上传控件在IE8以上浏览
用SWFUpload上传多个文件时怎么获取上传文件的个数
SWFUpload是一个基于flash与javascript的客户端文件上传组件。
handlers.js文件完成文件入列队(fileQueued) →完成选择文件(fileDialogComplete) → 开始上传文件(uploadStart) → 上传处理(uploadProgress) → 上传成功(uploadSuccess) → 上传完成(uploadComplete) →列队完成(queueComplete)
如上所示,单选文件顺序执行以上回调函数,需要注意的是选择多个文件,fileQueued、queueComplete只会执行一次,而fileDialogComplet...→ uploadComplete每个文件都执行一次。
swfupload 官网上的最新版本
一、准备工作
从官网上下载发布版v2.2.0.1,仅取下载文件中的SWFUpload.js和swfupload.swf即可,另外可利用官网上的DEMO,从中获取一张PNG图片。
swfupload.swf是上传组件的核心,一个特制的FLASH,具有浏览文件,上传文件的功能,以按钮形式体现在用户眼前,上文中提及的PNG图片浮在按钮上,可增强视觉效果。SWFUpload.js与swfupload.swf交互,向开发者提供操作接口。
二、使用步骤
文档中指出,SWFUpload并不是拖放式的上传控件,它需要使用者具备JavaScript(以下简称JS)和DOM的知识,进行UI界面的设计。
点击“选择文件”按钮,文件对话框即刻跳出,用户选择多个文件后,对话框立即关闭,选择的文件进入排队序列,等待上传。当调用SWFUpload 对象的startUpload方法执行上传命令。在此例中,swfu已经实例化为SWFUpload 对象,故可以在JSP中添加一个按钮,在其点击事件中调其该方法。在JSP中添加代码:
《button onclick="swfu.startUpload()"》上传《/button》
虽如此,但文件没有上传到服务器上,至少客户端不知道上传的目的地。
3.指定客户端将上传信息发送至服务器的URL——struts2登场
swfupload将upload_url属性值作为客户端将文件上传请求信息发送至服务器的URL,读者可理解为struts2表单中的action属性值,upload_url属性值默认为web项目的主页。笔者仅介绍struts2如何接收请求。
struts2已经实现了上传功能,笔者不作详细介绍(由于struts2实现了无缝整合,开发者仅需要将上传的临时进行复制即可,其使用方法易于掌握)。
使用struts2的上传功能,开发者需要知道file标签的name属性值,在此基础上,编写action类即可,并在struts.xml文件中配置名字其名字。在swfupload中,file标签的name属性等价为file_post_name属性,其默认值为Filedata。至此,具备了URL和name属性值,便可开始struts2整合之旅。
首先将action的名字赋值给 swfupload中upload_url属性。接着编写自己的action类,类中包含两个属性Filedata和Filename,Filedata和file_post_name值相同(文档推荐使用默认值Filedata)。 Filedata指向了struts2上传的临时文件路径(action中的execute函数执行完毕,临时文件将被删除),Filename为上传文件的名字。Execute函数实现将临时文件复制到指定的目录(此例将它放在WEB项目下bin目录下的upload中)。此例action的名字为“upload”,在JSP中将upload_url属性赋值为upload。
SWFUpload控件可以设置图片像素大小吗
这个是文件上传的组件,不只是针对图片,可以对文件的大小做限制,图片像素大小貌似没办法。
本文相关文章:

case后面加switch(C语言的case后可以是表达式吗像这样:case 2+1 switch是3的时候会进入这条语句吗)
2025年8月22日 21:40

c语言switch判断字符串(C语言用switch实现从键盘输入一个字符,判断是数字还是其它)
2025年8月21日 09:00