日期:2014-05-16  浏览次数:20414 次

js遍历对象属性之swfupload上传控件的file对象探讨
用过swfupload的童鞋们,肯定有个疑问,如果得到swfupload的本地文件路径呢,就类似<input type="file">的效果,输入框里是本地文件路径.我一直在摸索,从未超越这个问题,汗,如果是服务端的话是很容易获取的,但是js客户端确实有点难办.
先来看下如何打印swfupload的file对象.在 fileprogress.js 里找到 file.name 这一句,然后在他下面加上如下语句:
		for(var z in file)
		{
			var c = z;
			alert(eval("file."+c));
		}


这时候就可以看到所有属性的值了.
我们一个个alert出来看看他到底是什么值.
修改以上代码,对应属性名与值看看:
		for(var z in file)
		{
			var c = z;
			//document.write(eval("file."+c));
			progressText.appendChild(document.createTextNode(c+'='));
			progressText.appendChild(document.createTextNode(eval("file."+c)));
		}


得到如下数据:
      name=3cc68cfc60b87e6dd6887d8a.jpg
      modificationdate=Wed   Apr 21 15:48:30 UTC+0800 2010
      filestatus=-1
      post=[object   Object]
      type=.jpg
      index=0
      size=29006
      creationdate=Wed Apr 21 15:48:38 UTC+0800   2010
      id=SWFUpload_0_0

没有一个是本地文件路径,汗.继续跟踪 post ?
1 楼 chemzqm 2010-05-08  
为了防止不良人士搞破坏,javascript是没有能力获取全路径的
2 楼 化蝶自在飞 2010-05-08  
chemzqm 写道
为了防止不良人士搞破坏,javascript是没有能力获取全路径的

看到只能用file了.
3 楼 hegz 2010-06-09  
是啊,JavaScript本身已经够暴力了。
4 楼 化蝶自在飞 2010-06-09  
hegz 写道
是啊,JavaScript本身已经够暴力了。


AS貌似有这功能吧.
5 楼 chengweipeng123 2010-09-20  
我现在也遇到这个问题。。。用Ext自带的组件不支持批量选中,用SWFUpload又不能取到本地地址。。。
6 楼 化蝶自在飞 2010-09-20  
chengweipeng123 写道
我现在也遇到这个问题。。。用Ext自带的组件不支持批量选中,用SWFUpload又不能取到本地地址。。。

建议你可以看看百度相册的swf上传.
7 楼 waiting 2010-10-27  
FF装个firebug,然后在初始化swfupload时把个全局变量也绑上就可以直接在firebug的DOM栏目中直接查看属性了。
8 楼 liufeigoodluck 2011-01-12  
javascript可以获取页面上file对象的本地路径,但是不能给页面上的file对象赋值!
9 楼 951ty 2011-06-17  
额 LZ搞定没呀 ?我也遇到这个问题了。、。。