如何使用Angularjs在Safari上多次上传csv文件?

时间:2016-06-07 07:37:34

标签: javascript angularjs csv safari

我已经编写了一个网络应用,我想上传一个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中出现。

如何修改我的代码,每次点击上传文件时,只有在选择文件后才会调用该函数?

感谢您阅读我的问题。

0 个答案:

没有答案