【问题标题】:Can I restrict file types in Plupload?我可以限制 Plupload 中的文件类型吗?
【发布时间】:2012-07-23 19:11:47
【问题描述】:

我想阻止人们尝试使用 Plupload 上传某些文件类型。文档过滤器(即阻止人们在文件浏览器中选择文件)但仍然很容易绕过,Plupload 将允许尝试上传这些文件:

http://www.plupload.com/documentation.php#configuration

当然,服务器会说它不想要那种类型的文件,但只有在上传完成之后。

我可以让 Plupload 拒绝上传某种类型的文件(或只上传给定类型的文件)吗?

【问题讨论】:

  • 您可以尝试验证服务器上第一个块上的文件吗? oyu 是否使用分块。如果浏览器不支持它,它会做一个大帖子,你无能为力。服务器上的验证很重要。您可以在块 0 上返回一个 JSON 回复,说停止上传 - 如果用户找到绕过过滤方法的方法,客户端将连接到该内容并停止它。
  • 是的,服务器正在检查文件类型,但我想首先阻止用户尝试。
  • 是的,我可以编写一些额外的 JS 处理代码,看起来我必须这样做。我只是想验证 plupload 中是否缺少此功能。
  • @trejder 这是两年前的事了!具体记不太清了,抱歉。我只是在示例页面上尝试了几分钟,但无法使其正常工作。所以也许这在过去 2 年里已经解决了。
  • @trejder 我刚刚查看了存储库。 “文件上传错误”字符串出现在 2012 年 11 月(我认为),这个问题是在 2012 年 7 月提出的。

标签: plupload


【解决方案1】:

在文件上传或文件添加的过程中,您可以检查文件名的扩展名:

var test='hellothere.jpg';
var ext = test.substr(-3);

然后提醒用户注意无效文件。

更新

需要在服务器上进行额外验证。第一次检查客户端,第二次在服务器端发布到您的上传方法,并记住您是否已重命名文件,请查看表单的“名称”属性,而不是文件新名称的 postfilecollection。如果有任何错误,您可以发送 json 响应说:

    "{"respCode" : "500", "Msg" : "Failed"}

【讨论】:

  • 一些有经验的用户仍然可以绕过客户端脚本,直接将数据转储到服务器。重新验证服务器端始终很重要。您的回答是正确的,但我认为这是不好的做法。您能否尝试扩展一下/或包含最佳实践说明。这将使它成为最佳答案候选者。
  • 是的,你就在那儿。服务器上将需要额外的验证。第一次检查客户端第二次发布到服务器端的上传方法,并记住如果您重命名了文件,请查看表单的“名称”属性,而不是文件新名称的 postfilecollection。如果有任何错误,您可以发送 json 响应说:"{"respCode" : "500", "Msg" : "Failed"}"
  • 我认为你应该阅读上面的 cmets 并更新你的答案。您很有可能获得被接受的答案。
猜你喜欢
  • 2021-06-02
  • 2011-02-11
  • 1970-01-01
  • 2017-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-15
  • 1970-01-01
相关资源
最近更新 更多