1

嗨,我正在尝试使用文件上传控件在 asp.net 中显示上传的 img 的预览,我有一个预览按钮,当用户单击时,应将文件从 fileupload 控件保存到我服务器上的临时文件夹中并更改imagecontrol 的 imageurl 到 temp 文件夹中保存的图像的路径,并在回发后在页面上显示图像。这是我所做的:

protected void btnPreview_1_Click(object sender, EventArgs e)
    {
        if (!imgUpload_1.HasFile)
        {
            return;
        }

    string strFileName = Path.GetFileNameWithoutExtension(imgUpload_1.FileName.ToString());
    string ext = Path.GetExtension(imgUpload_1.FileName.ToString());
    string loc = "temp/";
    string strImgFolder = Server.MapPath(loc);

    System.Drawing.Image newImage;

    FileUpload img = (FileUpload)imgUpload_1;
    Byte[] imgByte = null;

    try
    {
        if (img.HasFile && img.PostedFile != null)
        {

            HttpPostedFile File = imgUpload_1.PostedFile;

            imgByte = new Byte[File.ContentLength];

            File.InputStream.Read(imgByte, 0, File.ContentLength);
        }
    }
    catch (Exception ex)
    {

    }

    if (imgByte != null)
    {
        using (MemoryStream stream = new MemoryStream(imgByte, 0, imgByte.Length))
        {
            newImage = System.Drawing.Image.FromStream(stream);

            newImage.Save(strImgFolder + strFileName + ext);

            imgPreview.ImageUrl = strImgFolder + strFileName + ext;
            imgPreview.AlternateText = strFileName;
        }
    }
}

我已经尝试使用我在网上找到的代码使用处理程序,经过数小时的尝试我仍然无法让它工作,我还尝试在 imageurl 的末尾附加一个随机数(就像这样 imageurl +“?” + randomnumber 强制页面刷新(这也不起作用),我也尝试过:

Response.AddHeader("Cache-Control", "no-cache");

在我的页面加载中,这也不起作用。我已经做了几个小时有人可以帮我吗?

4

0 回答 0