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);
}

谢谢。

ASP.从基于windows的服务器上删除文件(图像)的最佳方法

如果在重置应用程序池后删除文件是可能的,那么看起来您在上传文件后保留了对该文件的引用。如何处理上传,上传后对文件进行了哪些操作?


更新:我发现其他一些人有同样的问题,上传的文件在调用SaveAs(...)后保持锁定:文件在HttpPostedFile SaveAs(LocationOnServer)后被锁定。

最后,似乎文件保持锁定,直到你调用SaveAs(...),所以如果你有一些服务器端验证,你决定是否保存文件,也许问题可以在那里?注意,我没有测试这个