我正在为用户上传图像并将其保存在指定位置。该代码在正常情况下工作正常,即用户选择图像并保存它,它可以工作。
当用户选择图像(可能由于错误而导致错误图像)并且不保存它,但再次选择新图像然后保存它时,会发生挑战。 这种情况给了我错误:
“该进程无法访问该文件,因为它正被另一个进程使用。”
当我尝试在出错时从该位置删除图像时,无法删除文件并显示以下消息:
“操作无法完成,因为文件在 IIS 工作进程中打开关闭文件并重试。”
代码是这样的:
try
{
if (!Directory.Exists(folder))
Directory.CreateDirectory(folder);
msf = new MemoryStream();
bytes=FileUpload1.FileBytes;
msf.Write(bytes, 0, bytes.Length);
using (FileStream stream = new FileStream(folder + "/" + filename, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))
{
//converting any graphic file type to jpeg format
Image img = Image.FromStream(msf);
img.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
msf.WriteTo(stream);
IsuploadSuccess = true;
img.Dispose();
}
}
catch
{
IsuploadSuccess = false;
}
finally
{
if (msf != null)
{
msf.Close();
msf.Dispose();
}
}
我尝试在文件流中添加“FileAccess.ReadWrite”和“FileShare.ReadWrite”,但也不适用于文件流中的所有选项。
请帮忙...