3

我正在使用 Firefox 版本 14.0.1。我需要过滤上传文件窗口以仅显示.txt文件。

我的浏览器不仅支持文本文件(text/plain)。我可以通过指定这种格式来限制图像文件("image/*")。但我只需要在文件选择器窗口中过滤文本文件。

我的浏览器有问题吗?

4

2 回答 2

4

只需这样做...

$("#form").submit(function(e) {
  e.preventDefault();
  var checkUploadFileExtension =  $('input[type=file]').val().replace(/C:\\fakepath\\/i, '').split('.').pop();

  if(checkUploadFileExtension === 'txt') {
    alert("Success Uploaded!");
    //Do Something
  } else {
    alert("Please upload text file only");
    //Show error
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form id="form" name="form" method="post">
  <input name="file" id="file" type="file" accept="text/*" />
  <button class="btn operations-btn btn-default" id="submit">Upload</button>
</form>

我希望,对我的帖子有所帮助。谢谢

于 2018-05-10T05:55:45.803 回答
2

因此,根据MDN 参考,输入元素 accept=[MIME Type]在 Gecko 中未实现,目前您只能执行以下操作:accept=image|audio|video

您可以这样做的一种方法是在服务器端检查 asp.net-mvc 控制器上的类型。

但更好的方法是在客户端上使用一些 javascript: 像这样:

<script>
function checkExt() {
 if(document.mainForm.myfile.value.lastIndexOf(".txt")==-1) {
    alert("Please upload only .txt extention file");
    return false;
 }
}
</script>
<form name="mainForm">
<input type="file" name="myfile" onchange="checkExt();"/>
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

看到它在这里运行:http: //jsfiddle.net/Egr9V/

如果您使用 JQuery,您可以使您的代码更流畅或使用本文所述的验证插件: 如何让 jQuery 在上传时限制文件类型?

于 2012-08-20T06:56:58.697 回答