首页 新闻 会员 周边

asp.net上传图片时,该进程无法访问文件,因为该文件正由另一进程使用!

0
悬赏园豆:30 [已解决问题] 解决于 2009-03-18 13:59

   如题,第一次上传成功,但上传后的文件我就删除不了了,第二次上传就报错了。每次还要把asanet_wp.exe进程结束才行。

  上传的代码如下:       

 try
{
if (File.Exists(filePath))
{
File.Delete(filePath)
}
inputFile.PostedFile.SaveAs(filePath);
inputFile.PostedFile.InputStream.Close();
inputFile.PostedFile.InputStream.Dispose();
inputFile.Dispose();
}
catch (Exception ee)
{
Response.Write(ee.Message);
}

inputFile是一个input(file)控件,红色的代码是我看的别的文章加上的,但问题还是没有解决,请高手帮忙呀!

问题补充: ================ 不知道是不是inputFile.PostedFile属性在应用时有打开文件的操作而没有释放呢? 可以看到它的源码吗? 我有一段程序用了下面的方法,是没有这个问题的,但放到我这里还是不行。 HttpPostedFile hpf = inputFile.PostedFile; hpf.SaveAs(filePath); 难到是有什么冲突?还是因为它是异步处理的过呢? ============================= 哦,终于找到问题了,我对这个文件有访问了一次,忘了,呵呵; 代码如下: System.Drawing.Image mapImage = System.Drawing.Image.FromFile(filePath) ImageWidth = mapImage.Width; ImageHeight = mapImage.Height; 没有释放。改成如下代码。 using (System.Drawing.Image mapImage = System.Drawing.Image.FromFile(filePath)) { ImageWidth = mapImage.Width; ImageHeight = mapImage.Height; mapImage.Dispose(); }
寒炫_水煮江湖的主页 寒炫_水煮江湖 | 初学一级 | 园豆:165
提问于:2009-03-17 17:19
< >
分享
最佳答案
0

在上传成功后你紧接着有没有打开这个上传后的文件,是不是没有close.

Jerry Qian | 初学一级 |园豆:19 | 2009-03-17 17:47
其他回答(4)
0

多测试测试,用用Clear()试试!!

子夜星辰 | 园豆:1613 (小虾三级) | 2009-03-17 17:56
0

每次用完这个文件,必须close.将这个流关闭.否则会提示正在用这个文件,你就相仿设法的把这个留关闭、清空、注销。就没事了

邢少 | 园豆:10926 (专家六级) | 2009-03-17 19:06
0

该进程无法访问文件,因为该文件正由另一进程使用

  这就说明有正在用呀,不让删除,

 看代码好像是没啥问题

jowo | 园豆:2834 (老鸟四级) | 2009-03-18 10:09
0

mark...

Jared.Nie | 园豆:1940 (小虾三级) | 2009-03-18 14:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册