我在使用FileUpload控件时遇到问题,我想验证图像长度,大小,格式等,并希望在成功验证后在ImageControl上显示它。这是通过另一个按钮点击事件完成的,但我希望在“浏览文件”窗口打开时在客户端的“OK / OPEN”和“CANCEL”按钮上完成此操作。请帮助。
答案 0 :(得分:2)
我不知道为什么人们对这个问题投赞成票。这可能是一个愚蠢的问题,或者我没有得到足够的解释。对不起,我很抱歉。我找到解决方案的任何方式。
当用户从“浏览文件”对话框中选择FileUpload的图像文件时,我正在探索一个事件。
我的代码如下:
<asp:FileUpload ID="imgUpload" runat="server" CssClass="textfield" Width="200px" Height="24px" ToolTip="Browse patient image " />
<asp:ImageButton ID="imgBtn" runat="server" OnClick="imgBtn_Click" ImageUrl="~/IMAGES/Upload-icon.png" Height="24px" ToolTip="Upload patient image" />
上传意味着验证图像并将其放入Session变量并在Image控件上显示。稍后,当我单击“保存”按钮时,它会将Byte []数组保存到数据库中。
`
protected void imgBtn_Click(object sender, ImageClickEventArgs e)
{
Byte[] imgByte = null;
const int PROD_IMG_MAX_WIDTH = 130;
const int PROD_IMG_HEIGHT = 130;
imgEmp.Visible = false;
if (imgUpload.HasFile && imgUpload.PostedFile != null && IsFileValid())
{
HttpPostedFile File1 = imgUpload.PostedFile;
imgByte = new Byte[File1.ContentLength];
File1.InputStream.Read(imgByte, 0, File1.ContentLength);
Session["binaryImage"] = imgByte;
System.Drawing.Image UploadedImage = System.Drawing.Image.FromStream(imgUpload.PostedFile.InputStream);
object o = UploadedImage.Size;
if (UploadedImage.Width > PROD_IMG_MAX_WIDTH && UploadedImage.Height > PROD_IMG_HEIGHT && File1.ContentLength > 1048576)
{
DisplayMessage("Size of image is not correct!");
Session["binaryImage"] = null;
imgEmp.ForeColor = System.Drawing.Color.Red;
imgEmp.Font.Size = FontUnit.Medium;
}
else
{
imgEmp.Height = 100;
imgEmp.Width = 90;
imgEmp.Visible = true;
imgEmp.ImageUrl = "~/ADMIN/MASTERS/ImgDisp.aspx";
ViewState["imgUploadedPhotoName"] = imgUpload.FileName;
}
}
else
{
DisplayMessage("Browse valid image!");
imgEmp.Visible = true;
}
}`
最后我添加了这个脚本
$(document).ready(function () {
var labelID = $('#<%= imgUpload.ClientID %>');
var uploadBtnId = $('#<%= imgBtn.ClientID %>');
uploadBtnId.css('display','none');
labelID.bind('change', function () {
uploadBtnId.trigger('click');
});
})