1
我正在處理圖片庫,用戶可以上傳圖片。上傳的圖像被轉換爲縮略圖並放入縮略圖的特定文件夾中,並將原始圖像放入全尺寸圖像的文件夾中。顯示圖片上傳後的縮略圖
在Page_Load方法在後面的代碼我得到從文件夾縮略圖,並將其綁定到我使用的中繼器,這意味着被裝載的頁面時該文件夾中的所有圖像被顯示。
當用戶選擇上傳圖片時,UploadButton_Click函數被調用,文件將被處理,然後以全尺寸顯示。一切工作正常接受上傳的圖像縮略圖上傳後不直接顯示。要顯示它,您必須重新加載頁面,以便再次加載Page_Load。
當然,解決這個問題的一個東方的方法是放置代碼來獲取縮略圖並綁定Repeater控件,即使在UploadButton_Click函數中,但這是我不喜歡的DRY。
有沒有更好,更優雅的解決方法?
後面的代碼:
protected void Page_Load(object sender, EventArgs e) {
var directory = new DirectoryInfo(Gallery.PhysicalApplicationPath + "/Images");
var theFiles = directory.GetFiles();
ImageRepeater.DataSource = theFiles;
ImageRepeater.DataBind();
var dataName = Request.QueryString["name"];
if (dataName != null) {
fullSizeImage.ImageUrl = "Images/" + dataName;
}
}
protected void UploadButton_Click1(object sender, EventArgs e) {
if (Page.IsValid) {
if (ImageUpload.HasFile) {
var content = ImageUpload.FileContent;
var name = ImageUpload.FileName;
var image = Gallery.SaveImage(content, name);
fullSizeImage.ImageUrl = "Images/" + image;
}
}
}
太棒了,就像一個魅力!謝謝! – holyredbeard 2012-02-22 18:46:30