我正在尝试使用此示例:

http://jsfiddle.net/200eoamf/1/

那就是部分代码,您可以在jsfiddle中看到所有代码:

var onFileReadFn = $parse(attrs.onReadFile);
var reader = new FileReader();

reader.onload = function() {

    var fileContents = reader.result;

    // invoke parsed function on scope
    scope.$apply(function() {
        onFileReadFn(scope, {
            'contents' : fileContents
        });
    });
};

reader.readAsText(element[0].files[0]);


在Chrome浏览器中会发生以下问题,但在Firefox中不会发生以下问题:

如果我选择文件,说myfile.txt,它将出现在文本框中。
但是,如果我通过选择整个文本并将其删除然后再尝试再次上传相同的文件myfile.txt来手动清除该窗口,则不会上传。为什么会发生这种情况以及如何解决?谢谢。

最佳答案

您有两个选项,一个是使用“清除”按钮,以便用户可以手动执行此操作,另一个选项是在用户单击输入时清除上一个文件的值。这是稍后的内容:http://jsfiddle.net/200eoamf/12/

element.bind('click', function() {
  element.val(null);
});


感谢Blake Plumbthe idea! :)

关于javascript - 清除后将同一文件上传到文本框中,在Chrome中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32916687/

10-12 14:35
查看更多