我已经编写了一个网络应用,我想上传一个CSV
文件。它在Chrome上按预期工作,但在Safari上无效。
以下是要上传文件的Angularjs代码,
$scope.uploadFile = function (file) {
var name, extension, browser;
var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
if (isSafari) {
name = file.fileName;
extension = name.split('.')[name.split('.').length - 1].toLowerCase();
if (extension != "csv") {
alert("Selected File is not a valid .CSV file. Please select a .CSV file.");
return false;
}
}
//Code to save file to server
}
以下是调用上述功能的HTML代码,
<input id="uploader" type="file" ngf-select="uploadFile(uploadedFile)"
ng-model="uploadedFile" ngf-max-size="100MB" name="file"
ngf-accept="'application/csv, text/csv, text/comma-separated-values, *.csv, .csv, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-excel'">
第一次单击input
按钮时,会正确调用该函数。所选文件按预期上传。当我尝试第二次上传相同的文件时,问题就开始了。单击uploadFile
文件选择器后,将立即调用<input >
函数。
上述问题仅在Safari中出现,而不是在Chrome中出现。
如何修改我的代码,每次点击上传文件时,只有在选择文件后才会调用该函数?
感谢您阅读我的问题。