2013-05-01 76 views
0

1添加文件输入框在IE9 uploadFile不工作

<input type="file" id="uploadFile" ng-model="upFile" onchange="angular.element(this).scope().setFile(this)" /> 

2创建控制器

$scope.setFile = function (element) { 
    $scope.uploadedFile = element.files[0]; 
} 

如上,我用这种方式来上传文件setFile方法,它的工作原理在FireFox中,但在IE9中,它显示“元素为null,我们未定义”。我能做什么?

回答

0

files是一个HTML5文件API的功能,并仅适用于支持它的浏览器。

它不是在IE9支持的看到:http://caniuse.com/#feat=fileapi

您可以检查是否files之前支持使用它,试试(未测试):

if(ev.target.files){ 
    $scope.uploadedFile = element.files[0]; 
}else{ 
    $scope.uploadedFile = ev.target.value; 
} 
+0

'ev.target.value'给你的文件名称,而不是文件。 – 2013-05-01 17:35:58

+0

你是对的我尽快更改代码,我现在在手机上。 – 2013-05-01 17:37:58

+0

没问题。请注意,由于没有File API支持,因此无法在IE9及更早版本中获取“文件”客户端。您可以做的最好提交包含文件输入的表单,并在服务器端进行处理。 – 2013-05-01 17:39:20