我正在尝试使用此示例:
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 ,则不会上传。为什么会发生这种情况以及如何解决?感谢。
答案 0 :(得分:1)
您有两个选项,一个是使用清除按钮,因此用户可以手动执行此操作,另一个选项是在用户单击输入时清除上一个文件的值。以下是后者:http://jsfiddle.net/200eoamf/12/
element.bind('click', function() {
element.val(null);
});
感谢Blake Plumb the idea! :)