HTML+jQuery图片上传示例

图片上传HTML部分只需要增加一个表单或在原有的表单中添加<input type="file">的标签,表单示例如下:

1 <form id="imageForm" enctype="multipart/form-data" action="url" method="POST">
2     <input type="text" name="imgName" />
3     <input type="file" name="image" accept=""/>
4     <button type="submit" >上传</button>
5 </form>
其中,form和input[type="file"]的属性是图片或者文件上传的关键属性;
对于要上传图片或文件的表单form,其必要属性为enctype="multipart/form-data",这一属性主要作用是将form的MIME编码设置成二进制,为图片或文件上传提供编码基础。
注:表单form的默认MIME编码为application/x-www-form-urlencoded。
接下来,是input[type="file"]的属性设置。input[type="file"]是调用了HTML默认提供的本地文件选择的控件。其中,accept属性定义了空间打开时默认浏览的文件格式。accept的部分值(与图片上传相关的值)及其对应的文件格式如下表所示:
对应的文件
image/*
所有图片文件
image/png
png格式的图片
image/jpeg
jpg格式的图片
image/gif
gif格式的图片
image/png,image/jpeg,image/gif
png,jpg,gif格式的图片
上述表单能完成图片上传的前台工作,但每次提交表单之后都会刷新页面,会影响用户的交互体验。而对于进行文件上传的表单,ajax提交方式完全不能实现(原理还未知),因此,我引用了jQuery的一个表单插件——jquery.form.js中的ajaxSubmit。
jquery.form.js的ajaxSubmit的使用方式跟ajax类似,不过ajaxSubmit不能直接调用,需要指定对象。
 1 <script type="text/javascript" >
 2     var ajax_option={
 3         url: url,                  //String, 表单提交的目标地址,此属性会覆盖表单的action属性
 4         type:type,             //String,表单提交的方式(POST or GET),此属性会覆盖表单的method属性
 5         dataType: null,    //String,指定接受服务端返回的数据类型(xml,script  or  json)
 6         clearFomr: true,   //boolean,默认为false,成功提交后是否清除所有表单元素的值
 7         resetFomr: true,  //boolean,默认为false,成功提交后是否重置所有表单元素的值
 8         timeout: 3000,    //number,单位ms,限制请求的时间,当请求大于设置的时间后,跳出请求
 9         success:function(responseText,statusText,xhr,$form){
10             console.log(responseText);
11             //业务提示
12         },//提交成功后的回调函数 。参数详解:responseText,服务器返回的数据内容;statusText,服务器返回的状态
13         beforSubmit: function(formData, jqForm, options){
14             console.log(formData);
15             //业务提示
16         },//提交之前的回调函数。参数详解:formData,数组对象,为表单的内容;jqForm,jQuery对象,封装了表单的元素;options,之前设置的ajaxSubmit的option对象。
17     };
18  
19     //表单提交事件
20     $('#imageForm').submit(function(){
21         $("#imageForm").ajaxSubmit(ajax_option);
22         return false;
23     })
24 </script>

 

上述就是利用jquery.form.js插件实现的表单的提交。
将上述两部分结合,就是利用HTML和JQUERY实现无刷新页面的图片上传功能。

转载于:https://www.cnblogs.com/code-ten/p/4763453.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
string json = ""; string newfilename = ""; string path = ""; try { if (context.Request.Files["file_upload"] != null && context.Request.Files["file_upload"].FileName != "") { string hzm = System.IO.Path.GetExtension(context.Request.Files["file_upload"].FileName);//后缀名 如 .doc string[] a = { ".txt", ".jpg", ".jpeg", ".gif", ".png", ".docx", ".doc", ".xlsx", ".xls", ".rar", ".zip",".pdf" };//设定好了的格式 if (!a.Contains(hzm)) { json = "{\"statusCode\":\"300\",\"message\":\"文件格式不正确\",\"navTabId\":\"nav6\",\"rel\":\"\",\"callbackType\":\"\",\"forwardUrl\":\"\"}"; return json; } else { int defaulsize = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["filesize"]);//取得设置的默认文件的大小 int filesize = (context.Request.Files["file_upload"].ContentLength) / 1024; //取得上的文件的大小,单位为bytes if (filesize < defaulsize) { #region 对文件进行操作 newfilename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + hzm;//文件的新名字 如20120711105734222.doc path = System.Web.HttpContext.Current.Server.MapPath("~/UploadFile//");//文件保存的路径 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } #endregion } else { //超过了文件的大小 json = "{\"statusCode\":\"300\",\"message\":\"上的文件超过了3000M,请重新选择\",\"navTabId\":\"nav6\",\"rel\":\"\",\"callbackType\":\"\",\"forwardUrl\":\"\"}"; return json; } } } } catch (Exception) { json = "{\"statusCode\":\"300\",\"message\":\"文件格式不正确\",\"navTabId\":\"nav6\",\"rel\":\"\",\"callbackType\":\"\",\"forwardUrl\":\"\"}"; return json; } if (newfilename != "") { context.Request.Files["file_upload"].SaveAs(path + newfilename); //保存文件 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值