|
|
1
9
下面是ASP.NET处理文件的实际细节。它取决于版本,但2.0和所有后续版本都会在您有机会处理它们之前将上载写入磁盘。上述答案实际上是错误的——ASP.NET 2.0以上版本 将 将文件写入磁盘。如果您仔细想想,将上传加载到内存会让您面临DDOS漏洞,因为大型文件会占用越来越多的服务器内存。按版本,以下是ASP.NET的工作方式:
至少现在它被缓存到磁盘上,这样就不会出现1.0和1.1版本的内存问题,但在完全检索之前,您仍然无法访问它。 |
|
2
8
我认为理想的方法是拥有一个“传入”文件夹,该文件夹已被授予ASP.NET保存文件所需的权限。我从未遇到过文件即使在您调用后仍保持锁定的情况
请注意,FileUpload控件在调用之前不会上载文件
然后,您的AV应用程序可以自由扫描这些文件。如果出现错误,您可以向用户提供相关反馈。 |
|
|
3
3
您正在使用ASP FileUpload服务器控件吗? 如果是这样的话,它将被加载到服务器内存中,直到您对其执行某些操作为止。 这是来自MSDN;
|
|
|
4
1
如果您对安全问题很认真,另一个相关提示是确保您要将文件保存到的文件夹位于webroot之上,以便用户无法以任何方式直接访问它。您仍然可以让他们通过一些数据库工作删除上载的文件,即保存位置并确保每个文件的名称唯一(如果用户正在验证,我只需将文件名保存为USERNAME.XYZ,其中XYZ是文件的扩展名)。 |
|
|
5
1
此外,您可能希望使用7z.exe(7-zip命令行)提取任何归档文件。7-zip几乎可以提取我见过的每种归档类型,尽管它只支持新归档的几个压缩目标。
|
|
|
6
0
就像大脑一样,我会告诉你UploadFile控件 不 除非你告诉磁盘驱动器,否则不要向磁盘驱动器写入任何内容。 |