2015-04-23 25 views
0

我想使用YUI上传文件。 下面是我的代码,在Firefox和Chrome.But工作正常IE不工作8.无法获取文件对象使用YUI IN Internext Explorer

this.portlet_view_object.delegate('change', function(e) { 
...... 
var fileField = Y.one('#newcase_file_'+context.imageCount); 

     var file = fileField._node.files[0]; 

     if(!context.maxFileSize.call(context,file)){ 
      return; 
     } 
.... 

这里,maxFileSize为,是我将文件对象和执行与FIEL操作的方法(例如fileSize,fileName)。 在firefox和chrome中,我通过fileField._node.files [0]获取文件对象; 但同样的事情在IE 8中无法正常工作,并且出现错误。 _node.files.0'为空或不是对象

欢迎任何建议。

谢谢。

回答

0

此问题与YUI无关,仅适用于IE。

.files保存多个选定的文件,但IE8不支持此方法,只能选择一个文件。因此该属性不被识别。

您可以使用此解决方法:

if ('files' in fileField._node) 
    var file = fileField._node.files[0]; 
else 
    var file = fileField._node.value; 

或者,如果你想完全跳过整个.files,虽然我个人不会推荐它。