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;
        }

 

posted @ 2015-04-20 13:54  苦逼的猿人  阅读(224)  评论(0编辑  收藏  举报