本代码实现图片文件上传并生成缩略图以及文件安全效验等。多文件上传效果只兼容 IE10、firefox、chrome 等浏览器,其他浏览器只能单文件上传。 事件: 开发代码中一般使用传统的FileUpload控件进行单个文件上传,选择图片文件时又无法达到实时预 ...
本代码实现图片文件上传并生成缩略图以及文件安全效验等。
多文件上传效果只兼容 IE10、firefox、chrome 等浏览器,其他浏览器只能单文件上传。
事件:
开发代码中一般使用传统的FileUpload控件进行单个文件上传,选择图片文件时又无法达到实时预览的效果,而且无法实施对多件文件一次性上传。
实现图片预览在第二篇中详细描述,请关注。
代码架构图:
| --- AjaxUploadFileContral ---- cs ----ajax.aspx //ajax页面 ----Encryption.cs //加解密操作基类 ----JSONHelper.cs //json操作基类 ----Result.cs //保存对象类 ----UploadFileClass.cs //文件上传操作基类 ---- css ----css.css ---- img //资源图片 ---- js ----jquery-1.4.2.min.js ----uploadfile.js //文件上传js类 --- temp //图片临时文件夹 --- ajaxUF.ascx //文件上传控件 --- UploadFile.aspx //文件接收页面 ---- Image //站点图片文件夹 ---- Default.aspx //主页面,测试 ---- Web.config |
初步效果图(火狐下):
实施逻辑:
1、主界面使用框架嵌套文件接收页面,通过File控件选择多个文件后,将文件Post提交至文件接收页面。
2、接收页面将传入的文件图片保存至站点临时目录,保存完成后读取临时目录中的图片进行预览以及保存(预览图片为缩略图)。
3、删除操作:将选中的图片及缩略图从临时目录中删除。
4、保存:将选中的图片及缩略图全部移动到站点指定图片目录。
5、取消上传:删除临时目录里的所有文件。
说明:
第2步骤中需同时生成图片缩略图以及效验文件安全。
主要代码模块:
文件效验模块
5 /// <summary> 6 /// 效验文件安全性 7 /// 将效验文件正确格式,即使更改文件类型及扩展名也无法通过此效验方法 8 /// </summary> 9 public static Result checkFile(string FilePath)10 {11 try12 {13 FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read);14 BinaryReader r = new BinaryReader(fs);15 string fileclass = "";16 byte buffer = r.ReadByte();17 fileclass = buffer.ToString();18 buffer = r.ReadByte();19 fileclass += buffer.ToString();20 r.Close();21 fs.Close();22 23 //文件类型错误,将删除文件24 bool falg = false;25 string[] FileType = new string[] { "255216", "7173", "13780" };26 //数字说明,只针对目前主流图片格式:27 //255216 代表 .jpg文件28 //13780 代表 .png文件29 //7173 代表 .gif文件30 foreach (string n in FileType)31 {32 if (fileclass == n)33 {34 falg = true;35 break;36 }37 }38 if (!falg)39 {40 File.Delete(FilePath);41 return new Result(-1,"上传文件为非法文件,请谨慎上传。");42 }43 return new Result(1,"true");44 }45 catch (Exception ex)46 {47 throw ex;48 }49 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:多文件无刷新上传(一)
关键词:上传
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。