Asp.Net FileUpload选择图片后预览,并直接上传
来源:互联网 发布:舆情分析研判数据 编辑:程序博客网 时间:2024/05/19 01:29
FileUpload选择图片后先预览图片,然后上传。
使用到FileUpload的onchange事件,及使用一般处理程序(.ashx)来预览图片。
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <script type="text/javascript"> function uploadFile(filePath) { if (filePath.length > 0) { __doPostBack('btnUploadFile', ''); formReset(); } } function formReset() { document.getElementById("form1").reset() } </script></head><body> <form id="form1" runat="server"> <div> <asp:Image ID="Image1" runat="server" ImageAlign="Middle" /></div> <div style="width:800px;margin:0 auto;visibility:hidden"> <asp:FileUpload ID="FileUpload" runat="server" accept="image/*" onchange="uploadFile(this.value)"/> </div> <div style="width:800px;margin:0 auto;">图片格式为.jpg, .gif, .bmp, .png</div> <div style="width:800px;margin-top:10px; height: 16px; margin-left: auto; margin-right: auto; margin-bottom: 0;"><asp:Label ID="lbl_pic" runat="server" ForeColor="#FFFF66" Font-Bold="True" Font-Italic="False" Font-Overline="False"></asp:Label> </div> <div style="width:800px;margin:0 auto;"> <button type="button" onclick="document.getElementById('FileUpload').click();">选择图片</button> </div> <div style="visibility:hidden"> <asp:LinkButton ID="btnUploadFile" runat="server" onclick="btnUploadFile_Click">上传图片</asp:LinkButton> </div> </form></body></html>formReset()防止上传后刷新页面重复提交。
protected void btnUploadFile_Click(object sender, EventArgs e) { if (!this.FileUpload.HasFile) { lbl_pic.Text = "请选择要使用的照片!"; return; } string fileExtension = Path.GetExtension(this.FileUpload.FileName).ToLower(); if (!isImage(fileExtension)) { lbl_pic.Text = "图片格式不对,请重新选择!"; return; } Session["UploadBytes"] = this.FileUpload.FileBytes; this.Image1.ImageUrl = "~/ImagePreview.ashx" string imageName = Guid.NewGuid().ToString().Trim() + ".jpg"; string virpath = "/temp/"; if (!Directory.Exists(Server.MapPath(virpath))) { Directory.CreateDirectory(Server.MapPath(virpath)); } string mappath = Server.MapPath(virpath + imageName); if ((Session["UploadBytes"]) != null) { byte[] buffer = (byte[])(Session["UploadBytes"]); File.WriteAllBytes(mappath, buffer); } } /// <summary> /// 验证是否指定的图片格式 /// </summary> /// <param name="str"></param> /// <returns></returns> public bool isImage(string str) { bool isimage = false; string thestr = str.ToLower(); string[] allowExtension = { ".jpg", ".gif", ".bmp", ".png" }; for (int i = 0; i < allowExtension.Length; i++) { if (thestr == allowExtension[i]) { isimage = true; break; } } return isimage; }
一般处理程序(ImagePreview.ashx):
/// <summary> /// Handler1 的摘要说明 /// </summary> public class ImagePreview : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { if ((context.Session["UploadBytes"]) != null) { byte[] buffer = (byte[])(context.Session["UploadBytes"]); context.Response.BinaryWrite(buffer); } } public bool IsReusable { get { return false; } } }
Web.config中增加配置:
<system.web> <httpHandlers> <add verb="*" path="ImagePreview.ashx" type="命名空间.ImagePreview"/> </httpHandlers> </system.web>
0 0
- Asp.Net FileUpload选择图片后预览,并直接上传
- ASP.NET使用FileUpLoad控件上传图片前预览图片
- asp.net 2.0 FileUpload控件 上传图片 带预览
- ASP.NET在IE7中使用FileUpload上传预览图片
- FileUpload控件--选择图片后生成预览
- FileUpload控件--选择图片后生成预览
- 使用FileUpload上传并预览图片
- 转:使用FileUpload上传并预览图片
- asp.net 使用FileUpload控件上传并显示图片
- asp:FileUpload的高级应用一(在选择完需要上传的图片后,能在页面够及时地预览到该图片)
- FileUpload上传图片预览
- asp.net(c#)一次预览并上传多张图片
- ASP.NET上传图片时并产生预览
- asp.net(c#)一次预览并上传多张图片
- asp.net(c#)一次预览并上传多张图片
- asp.net无刷新上传图片并预览
- asp.net在ie7中使用FileUpload上传前预览图片
- asp.net在ie7中使用FileUpload上传前预览图片
- Jenkins/hudson:admin没有Read权限
- Spring MVC入门
- 二、创建一个可复用的单链表
- Java 三大框架集成项目结构
- Android之SharedPreferences
- Asp.Net FileUpload选择图片后预览,并直接上传
- hiwifi插件开发
- shell 中获取文件真实路径(绝对路径)
- 5X5点灯游戏
- Maven编译提示:软件包不存在
- 四种方案解决ScrollView嵌套ListView问题
- scrapy爬虫-------命令解析
- struts详解
- windows 位图结构详解