0

当我尝试上传我的数据和图像时,我遇到了一个小问题。

问题是:

System.IO.IOException: The process cannot access the file 'C:\MyWebSites\Class\OriginalImages\IMG_9209.JPG' because it is being used by another process. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode) at System.Web.HttpPostedFile.SaveAs(String filename) at Admin_InsertStudent.Button1_Click(Object sender, EventArgs e)

C#:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Text;

public partial class Admin_InsertStudent : System.Web.UI.Page {
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
        if (FileUpload1.HasFile)
        {
            string tempPath = "OriginalImages";
            string imgPath = "StudentImages";
            string savePath = Path.Combine(Request.PhysicalApplicationPath, tempPath);
            string TempImagePath = Path.Combine(savePath, FileUpload1.FileName);

            string imgSavePath = Path.Combine(Request.PhysicalApplicationPath, imgPath);
            string StudentImageNormal = Path.Combine(imgSavePath, FileUpload1.FileName);
            string StudentImageThumbnail = Path.Combine(imgSavePath, "t__" + FileUpload1.FileName);
            string extension = Path.GetExtension(FileUpload1.FileName);

            switch (extension.ToLower())
            {
                case ".png":
                    goto case "Upload";
                case ".gif":
                    goto case "Upload";
                case ".jpg":
                    goto case "Upload";
                case "jpeg":
                    goto case "Upload";

                case "Upload":
                    FileUpload1.SaveAs(TempImagePath);

                    ImageTools.GenerateTumbnail(TempImagePath,StudentImageNormal, 400, 300, true, "High");

                    ImageTools.GenerateTumbnail(TempImagePath, StudentImageThumbnail, 120, 90, true, "medium");

                    lblMessage.Text = "Billedet" + FileUpload1 + "er nu uploadet";

                    string FirstName = Convert.ToString(txtFirstName.Text);
                    string MiddleName = Convert.ToString(txtMiddelName.Text);
                    string LastName = Convert.ToString(txtLastName.Text);
                    string BirthDay = Convert.ToString(txtBirthDay.Text);
                    string City = Convert.ToString(txtCity.Text);
                    string Pic = "OriginalImages/StudentImages/" + FileUpload1.FileName;
                    string WebSite = Convert.ToString(txtWebSite.Text);

                    break;

                default:
                    lblMessage.Text = "Denne Filetype er ikke tilladt";
                    return;
            }

        }
    }
    catch (Exception err)
    {
        lblMessage.Text = err.ToString();
    }
        } }

希望可以有人帮帮我 :)

4

1 回答 1

1

上传文件后,您必须释放它。

yourFile.Dispose();

MSDN

使用此方法关闭或释放实现此接口的类的实例所持有的非托管资源,例如文件、流和句柄。按照惯例,此方法用于与释放对象持有的资源或准备对象以供重用相关的所有任务。

于 2012-04-30T11:29:12.257 回答