プロジェクトでこのAjax ファイルのアップロードを使用していますが、正常に動作しています。唯一の問題は、アップロードしたばかりの写真のパスを保存する方法です。基本的に、アップロードが成功した後に TextBox コントロールへのパスをコピーし、そのテキスト ボックスを updatepanel で囲み、Ajax の SaveAs メソッドを呼び出した後にそのパネルを手動で更新しようとしましたが、うまくいかないようです。
これは、uploadedComplete イベントのコードです。
protected void AsyncFileUpload1_UploadedComplete (object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
System.Threading.Thread.Sleep(3000);
if (AsyncFileUpload1.HasFile)
{
var relativeFolder = DateTime.Now.Year.ToString(CultureInfo.InvariantCulture) + Path.DirectorySeparatorChar + DateTime.Now.Month +
Path.DirectorySeparatorChar;
relativeFolder = relativeFolder.Replace('\\', '/');
var folder = Utils.RelativeWebRoot + "PostPhotos/" + relativeFolder;
var fileName = Path.GetFileName(e.FileName);
AsyncFileUpload1.SaveAs(Server.MapPath(folder + fileName));
txtPostPhoto.Text = folder + fileName;
PostImage.ImageUrl = txtPostPhoto.Text;
PostPhotoUpdatePanel.Update();
}
}
txtPostPhoto は私のテキスト ボックスです。
PostImage は、画像プレビューを表示しようとしている場所です。
これを行う別の方法はありますか?