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