使用FileUpload.SaveAs()之后,如何从IIS中释放已保存的文件(工作进程)

时间:2019-03-26 16:29:14

标签: asp.net file-upload save-as

我有一个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()”之后“解锁”图像文件。我现在想到的唯一解决方法是将每个图像文件保存为唯一名称(例如,时间戳记)。

0 个答案:

没有答案