我正在建立一个允许用户上传文件的门户.我需要确保这些文件不包含病毒.我的理想解决方案是让主机操作系统AV保持对临时文件夹的监视并扫描任何传入的文件.
在ASP.Net 2中上传文件时,是否在临时文件夹中写入磁盘,还是将其保存在内存中?如果是写入磁盘,IIS会锁定它,使AV无法删除吗?如果写入磁盘,哪里?
解决方法
我认为理想的方式是拥有一个“传入”文件夹,它被赋予ASP.NET保存文件所需的权限.即使在FileUpload控件上调用SaveAs之后,我也从未遇到过文件保持锁定的情况.
请注意,在调用SaveAs之前,FileUpload控件不会上传文件,这是当文件持久存储在服务器上的磁盘时.它似乎将所有文件内容保存在HttpInputStream中,当调用SaveAs方法时,该文件内容将被写入磁盘.
然后文件应该由AV应用程序自由扫描.如果发生错误,您可以向用户提供相关反馈.