我正在为用户上传图片&将其保存在指定位置。该代码在正常情况下工作正常,即用户选择图像&保存它,它的工作原理。
当用户选择图片时出现挑战<(由于错误可能是错误的图像)&amp;不保存,但再次选择一个新的图像&amp;然后保存它。 这个场景给了我错误:
“该进程无法访问该文件,因为该文件正由另一个进程使用。”
当我尝试从错误发生时的位置删除图像时,无法使用消息删除文件:
“无法完成操作,因为该文件在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”&amp;文件流中的“FileShare.ReadWrite”,但对文件流中的所有选项都不起作用。
请帮忙......
答案 0 :(得分:1)
而不是解决问题,我终于改变方法摆脱挑战的来源。我使用附加了CurrentDateTime的UserID(唯一)更改文件名,并将其转换为字符串&amp;将其存储到临时文件夹,直到用户保存更改。每次为挑战场景形成一个不同的文件。保存用户创建的临时文件夹中的每个文件(前面有唯一的用户ID)后删除&amp;最后的更改将保存到相应的目录中。