ASP.从基于windows的服务器上删除文件(图像)的最佳方法
本文关键字:文件 图像 方法 最佳 删除 windows 服务器 ASP | 更新日期: 2023-09-27 18:17:34
我正在开发一个用户可以上传图像的网站。我将图像保存到FTP文件夹(不是在db)和它在数据库中的详细信息(文件名,路径等)。
我注意到,当在本地主机上工作时,下面的代码工作得很好,它没有给我任何错误。但是当上传到服务器(与windows托管计划)时,它不会删除文件,并给我错误:cannot delete the file because it is used by another process.
我已经确定该目录具有合适的文件权限,但它仍然不删除它。奇怪的是,当我使用FTP客户端手动删除它时,它锁定了文件,不允许我从那里删除。我必须回收应用程序池才能做到这一点。
我正在寻找从基于windows的服务器上删除文件的最佳方法,当你有完整的路径到文件。
我在localhost上使用的代码是(当上传到服务器时,它会破坏其余的代码):
if (File.Exists(path))
{
File.Delete(path);
}
谢谢。
如果在重置应用程序池后删除文件是可能的,那么看起来您在上传文件后保留了对该文件的引用。如何处理上传,上传后对文件进行了哪些操作?
更新:我发现其他一些人有同样的问题,上传的文件在调用SaveAs(...)
后保持锁定:文件在HttpPostedFile SaveAs(LocationOnServer)后被锁定。
最后,似乎文件保持锁定,直到你调用SaveAs(...)
,所以如果你有一些服务器端验证,你决定是否保存文件,也许问题可以在那里?注意,我没有测试这个