1

こんにちは、ファイル アップロード コントロールを使用して asp.net にアップロードされた img のプレビューを表示しようとしています。ユーザーがクリックすると、ファイルをファイル アップロード コントロールからサーバー上の一時フォルダーに保存し、変更するプレビュー ボタンがあります。 imagecontrol の imageurl を一時フォルダーに保存された画像のパスに変更し、ポストバック後にページに画像を表示します。これが私がやったことです:

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 + "?" のように)。 +ページを強制的に更新するための乱数(それも機能しませんでした)と私も試しました:

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

私のページの読み込みでも、それも機能しませんでした。私は何時間もそれに取り組んできました。誰か助けてくれませんか?

4

0 に答える 0