SwfUpload浏览器端上传组件,可显示进度条,可定制UI,可多文件上传

swfupload项目的地址是http://swfupload.mammon.se/

该项目的原理是利用js和flash的上传组件的交互,获得上传进度的信息。采用事件机制回调各种事件的响应函数,使得你可以自己定制UI组件而不受flash的约束,总之是一个不可多得的好东西。

在使用过程中,值得注意的地方是在flash中访问服务器的相对路径时,它相对的是flash文件的路径,而不是flash所在html的路径!
废话无多,请下载我写的示例吧,服务器端只演示使用apache upload组件来接受文件的方式。

  • SWFupload.rar (1.3 MB)
  • 描述: 比较实用的swf示例,项目的编码是UTF-8
  • 下载次数: 2293
评论
zxj10203 2008-07-12
我试了这个东西,总体还不错,但用火狐的话,文件显示不出来,请问有什么解决办法吗
zxj10203 2008-07-12
霜晨右转 霜期无可奈何花落去 魂牵梦萦
clia 2008-04-08
我怎么在Action中得不到上传文件的信息啊,如文件名和文件类型.

List items = (List) upload.parseRequest(request); //这个为0

Iterator iter = items.iterator();
while (iter.hasNext()) { //不会进while
FileItem item = (FileItem) iter.next();

if (item.isFormField()) {/*
String name = item.getFieldName();
String value = item.getString();
System.out.println("name = " + name);
System.out.println("value = " + value);
System.out.println("/r/n");*/
} else {
String fieldName = item.getFieldName();
String fileName = item.getName();
//boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();
getListInSession(request).add(fileName);
getListInSession(request).add(UUID.randomUUID());
/*
System.out.println("fieldName = " + fieldName);
System.out.println("fileName = " + fileName);
System.out.println("contentType = " + contentType);
System.out.println("isInMemory = " + isInMemory);
System.out.println("sizeInBytes = " + sizeInBytes);
System.out.println("br");
*/
}
}
System.out.println("-------- final--------");
yaojin 2007-12-26
我运行程序会抛
org.apache.commons.fileupload.FileUploadException: Stream ended unexpectedly

异常.

请问怎么回事
spiritfrog 2007-11-28
ado88 写道
用了一下,在MYIE下有时会出错,错误是

行:227
字符:2
代码:0
错误:对象不支持此属性或方法

具体代码是:
SWFUpload.prototype.browse = function() {
this.movieElement.browse();
}
在IE下有时也会出现这种状况,但有时又没事,一直找不到原因,有人遇到过吗?

我试过了,没有以上问题;代码看了一遍,做了些修改,主要是在js里面加了些判断,比如完成就不能取消,必须开始下载后才能取消等等;总体感觉下来,swfupload确实是非常好的上传组件,能显示每个文件的进度,可以取消上传。
ado88 2007-11-27
用了一下,在MYIE下有时会出错,错误是

行:227
字符:2
代码:0
错误:对象不支持此属性或方法

具体代码是:
SWFUpload.prototype.browse = function() {
this.movieElement.browse();
}
在IE下有时也会出现这种状况,但有时又没事,一直找不到原因,有人遇到过吗?
rain16881 2007-11-06
好似是有问题的..你通过parseRequest去做的话..

只是用了struts中的action来充当servlet..

struts中的form是空的..

而在我的项目中..

是要传一个form到service层中的.再保存form 的..

你这个好像是做不到的..

我在javaworld@tw找到一个比你好的..你去看看吧
jimichan 2007-09-03
上传到哪个目录由你服务器端程序决定,通过FileItem item对象获得被上传的文件,然后转存到你指定的目录,在示例程序中没有处理文件保存
F1632923 2007-09-01
一个新手提的问题,上传的文件到哪个目录下面去了呀?多谢
jimichan 2007-08-29
关于防火墙的问题,我没有测试,但目前为止我还没有碰到问题,呵呵,卡巴的问题多了去了
会飞的狗 2007-08-29
已经使用,感觉还不错
sp42 2007-08-28
确定?
之前试过一些swf进度条的uploader,感觉不错..美中不足的和我当时的卡巴有冲突,进度条一下子去100%
我翻了翻以前的记录:
引用
http://noahgenius.javaeye.com/blog/66399
“as2和as3都有这个毛病:用fileReference做上传,上传进度一下子就到了100,然后过了一段时间才上传完毕。今天在网上查了这个问题,经过试验后发现原来是防火墙的原因。我用的是卡巴,上传的时候flash将数据传给卡巴,卡巴再负责上传,这样本地传数据就会很快了。”
看来是无福消受了
jimichan 2007-08-28
不会的吧,这个进度是在浏览器端计算出来的,不过会和浏览器端的flash版本有关
sp42 2007-08-28
关心一个问题:进度条会与一些防火墙有冲突吗?
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

jimichan
搜索本博客
我的相册
6c3caa48-8d6c-31c4-b19a-3164052c9d00-thumb
m1.JPG
共 2 张
最近加入圈子
存档
最新评论