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

浙公网安备 33010602011771号