如题,第一次上传成功,但上传后的文件我就删除不了了,第二次上传就报错了。每次还要把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)控件,红色的代码是我看的别的文章加上的,但问题还是没有解决,请高手帮忙呀!
{
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)控件,红色的代码是我看的别的文章加上的,但问题还是没有解决,请高手帮忙呀!
我一供准备了两张图,test1.jpg和test2.jpg。第一次上传的时候加任何一个都会成功,所以应该不是权限控制吧。
就是说上传没有问题,图片也传上去了,但是传上去以后的文件不可访问了,我用资源管理器也删除不了。
上传时,先存进一个临时文件夹中,一切处理ok,再从临时文件拷贝至正式的目录。
再在Global文件中处理临时文件,今天删除昨天或以前的临时文件。
private void DeleteFile()
{
DirectoryInfo dInfo = new DirectoryInfo(path);
foreach (FileInfo fInfo in dInfo.GetFiles())
{
if (fInfo.CreationTime < DateTime.Today)
{
fInfo.Delete();
}
}
}
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();
}
关键的代码为:FileUpload.SaveAs("文件名称");
没错,Input(file)控件也没有这样的问题,是因为我用了
System.Drawing.Image mapImage = System.Drawing.Image.FromFile(filePath)
没想到C#不会自动释放。所以一定要执行mapImage.Dispose(); 才行。