asp.net+uploadify实现图片上传图片
前段代码如下
$("#file_upload").uploadify({ 'auto': true, 'swf': '/template/js/cutImg/uploadify/uploadify.swf', 'uploader': '/template/js/cutImg/upload.ashx', 'multi': false, //是否能选择多个文件 'queueID': 'fileQueue', //显示上传文件队列的元素id,可以简单用一个div来显示 'cancelImage': '/template/js/cutImg/uploadify/uploadify-cancel.png', //[必须设置]取消图片的路径 'buttonText': '', //上传按钮的文字 'buttonImage': '/template/images/people.png', //上传按钮的背景图片 'width': 100, //上传按钮的高和宽 'height': 30, 'removeCompleted': true, //表示在上传完成后是否删除队列中的对应元素。默认是True,即上传完成后就看不到上传文件进度条了 "removeTimeout": "0", //表示上传完成后多久删除队列中的进度条,默认为3 "fileSizeLimit": "4096KB", //上传文件大小限制,默认单位是KB "fileTypeExts": "*.jpg;*.gif;*.png", //指定允许上传的文件类型。默认*.* "formData": { "folder_name": "UserHead" }, "onSelect": function () { //选择文件后触发 //禁用Uploadify //$("#file_upload").uploadify("disable", true); }, 'overrideEvents': ['onSelectError', 'onDialogClose'], //屏蔽内部错误提示 'onFallback': function () { //检测FLASH失败调用 FunMsg("您未安装FLASH控件,无法上传!请安装FLASH控件后再试。"); }, "onSelectError": function (file, errorCode, errorMsg) { //选择文件出错时触发,返回file,erroCode,errorMsg三个参数 var settings = this.settings; if (errorCode == -110) { FunMsg("文件最大限制" + settings.fileSizeLimit); } if (errorCode == -130) { FunMsg("图片格式只支持:*.jpg;*.gif;*.png"); } }, "onUploadStart": function (file) { //动态设置参数的值 //$("#file_upload").uploadify("settings", "formData", {"id":"1"}); }, "onUploadError": function (file, errorCode, erorMsg, errorString) { }, "onUploadSuccess": function (file, data, response) { //上传成功触发,data是用来接受从后台返回来的数值 } });
后台代码如下
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Charset = "utf-8"; HttpPostedFile file = context.Request.Files["Filedata"]; if (file != null) { //上传图片的扩展名 string fileExtension = Path.GetExtension(file.FileName);//上传文件的后缀 //判断文件格式 if (!CheckValidExt(fileExtension)) { context.Response.Write("错误提示:文件格式不正确!" + fileExtension); return; } //使用时间+随机数重命名文件 string strDateTime = DateTime.Now.ToString("yyMMddhhmmssfff");//取得时间字符串 Random ran = new Random(); string strRan = Convert.ToString(ran.Next(100, 999));//生成三位随机数 string saveName = strDateTime + strRan + fileExtension; string path = "/UploadFile/"; string uploadPath = HttpContext.Current.Server.MapPath(path); //判断是否有该文件夹,没有就创建 if (!Directory.Exists(uploadPath)) { Directory.CreateDirectory(uploadPath); } file.SaveAs(uploadPath + saveName); //下面这句代码缺少的话,上传成功后上队列的显示不会自动消失,并返回修改后的文件名称 context.Response.Write(path+saveName); } else { context.Response.Write("0"); } } /// /// 检测扩展名的有效性 +bool CheckValidExt(string sExt) /// /// 文件名扩展名 /// 如果扩展名有效,返回true,否则返回false. public bool CheckValidExt(string strExt) { string AllowExt = "7z|aiff|asf|avi|bmp|csv|doc|docx|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pptx|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xlsx|xml|zip";//支持的文件格式 bool flag = false; string[] arrExt = AllowExt.Split('|'); foreach (string filetype in arrExt) { if (filetype.ToLower() == strExt.ToLower().Replace(".", "")) { flag = true; break; } } return flag; }