我有一个ASP.NET网站应用程序,允许用户将图像文件上传到文件夹;然后,上传的图片将由该应用使用。我正在使用ASP.NET“ FileUpload”控件及其“ SaveAs”方法来执行此操作。
如果我这样做一次,一切都很好...但是,如果我尝试上传具有相同名称的另一个文件,则会收到一个错误消息,因为IIS正在使用先前上传的文件,所以我无法这样做。工人流程”。
我尝试关闭客户端浏览器,并开始一个新的会话...但是我仍然无法覆盖现有文件。即使我登录到服务器并尝试删除映像文件,也要等到进入任务管理器并停止“工作进程(w3wp.exe)”后,我才能这样做。该过程停止后,我可以重新上传图像文件或直接将其删除。
如何以保存文件后从IIS工作进程中释放文件的方式执行“ FileUpload.SaveAs()”?
这是我保存图像文件的代码:
If FileUpload1.PostedFile IsNot Nothing AndAlso
FileUpload1.PostedFile.FileName <> "" Then
FileUpload1.SaveAs(Server.MapPath(imgPath))
design1.ImageUrl = imgPath
Page.ClientScript.RegisterClientScriptBlock(GetType(Page),
"Alert", "alert('Image saved!')", True)
因此,所有操作都在第一次运行,但是如何在成功完成“ SaveAs()”之后“解锁”图像文件。我现在想到的唯一解决方法是将每个图像文件保存为唯一名称(例如,时间戳记)。