Javascript文件比较

时间:2014-03-28 10:17:29

标签: javascript jquery

我有4个文件输入标签来上传文件,如下所示,

Left File : <input type="file" name="dataFile1" id="fileChooser1" />
Right File : <input type="file" name="dataFile2" id="fileChooser2" />
Config File : <input type="file" name="dataFile3" id="fileChooser3" />
<button type="button" id="execute" onclick="ValidateFile()">Click to Upload files</button>

现在,我想确保只上传不同的文件。

如何在不使用第三方插件的情况下使用JS / JQ?

我用过,

var FileName1 = document.getElementById('fileChooser1').value;
var FileName2 = document.getElementById('fileChooser2').value;

if(FileName1 == FileName2)
 {
   alert("Same files cannot be uploaded");
 }

但是这只会检查正在上传的文件的名称,如果上传了两个名称不同但内容相同的文件,那么它们将被识别为不同的文件。

1 个答案:

答案 0 :(得分:0)

您应该能够使用jQuery从输入字段获取文件大小属性。请参阅How to check file input size with jQuery?

如果您对这些进行比较,则需要额外检查您是否上传了相同的文件。虽然不能保证。

在您的具体情况下,您可以获得以下更多信息:

//Check file data before execution
$('#execute').live('click', function() {
   console.log($("#fileChooser1")[0].files[0]);
   console.log($("#fileChooser2")[0].files[0]);
   console.log($("#fileChooser3")[0].files[0]);
});

检查您的控制台输出,以查看您获取的大小,类型和lastModifiedDate。我认为可以合理地假设,如果所有这些都是相同的,那么您将处理相同的文件(禁止0大小的文件)。

this fiddle

上测试一下