如何在Perl中限制CGI文件上传中的文件类型?

1 perl cgi file-upload

我正在使用CGI来允许用户上传一些文件.我只是希望能够上传.txt或.csv文件.如果用户上传任何其他格式的文件,那么我希望能够发出错误消息.

我看到这可以通过javascript完成:http://www.codestore.net/store.nsf/unid/DOMM-4Q8H9E

但有没有更好的方法来实现这一目标?Perl中是否有一些功能允许这样做?

jro*_*way 6

您链接到的网站上的免责声明非常重要:

注意:这并非完全万无一失,因为人们可以在上传之前轻松更改文件的扩展名,或者像"LoveBug"病毒那样做一些其他的诡计.

如果你真的想要这样做,让用户上传文件,然后使用File :: MimeInfo :: Magic(或file(1)UNIX实用程序)之类的东西来猜测实际的文件类型.如果您不喜欢文件类型,请删除该文件并向用户提供错误消息.