こんにちは、ファイル アップロード コントロールを使用して 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");
私のページの読み込みでも、それも機能しませんでした。私は何時間もそれに取り組んできました。誰か助けてくれませんか?