function fileQueueError(file, errorCode, message) {
try {
switch (errorCode) {
case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
art.dialog({ content: "文件过大,请选择500k以下的文件", title: "错误", lock: true, width: 350, icon: "error" });
break;
case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
art.dialog({ content: "无法上传零字节文件", title: "错误", lock: true, width: 350, icon: "error" });
break;
case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
art.dialog({ content: "不支持的文件类型", title: "错误", lock: true, width: 350, icon: "error" });
break;
default:
if (file !== null) {
art.dialog({ content: "未处理的错误", title: "错误", lock: true, width: 350, icon: "error" });
}
break;
}
} catch (ex) {
this.debug(ex);
}
}
function fileDialogComplete(numFilesSelected, numFilesQueued) {
try {
var obj = this;
if (numFilesQueued > 0) {
obj.startUpload();
}
} catch (ex) {
this.debug(ex);
}
}
function uploadProgress(file, bytesLoaded) {
try {
} catch (ex) {
this.debug(ex);
}
}
function uploadSuccess(file, serverData) {
try {
var json = eval("(" + serverData + ")");
if (json.err == "0") {
$("#img").attr("src", json.data);
$("#himg").val(json.data);
}
else {
art.dialog({ content: json.msg, title: "错误", lock: true });
}
} catch (ex) {
this.debug(ex);
}
}
function uploadComplete(file) {
try {
if (this.getStats().files_queued > 0) {
this.startUpload();
}
} catch (ex) {
this.debug(ex);
}
}
function uploadError(file, errorCode, message) {
try {
switch (errorCode) {
case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
try {
}
catch (ex1) {
this.debug(ex1);
}
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
try {
}
catch (ex2) {
this.debug(ex2);
}
case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
break;
default:
break;
}
} catch (ex3) {
this.debug(ex3);
}
}
function InitMySwf(settings, swfObj) {
if (settings.buttonId == undefined) {
art.dialog({ title: "错误", content: "请给上传控件指定容器ID", lock: true, drag: false });
return;
}
var upload_url = "/handler/UpLoadImgFile.ashx";
if (settings.upload_url != undefined) {
upload_url = settings.upload_url;
}
var file_queue_error_handler = fileQueueError;
if (settings.file_queue_error_handler != undefined) {
file_queue_error_handler = settings.file_queue_error_handler;
}
var upload_progress_handler = uploadProgress;
if (settings.upload_progress_handler != undefined) {
upload_progress_handler = settings.upload_progress_handler;
}
var upload_error_handler = uploadError;
if (settings.upload_error_handler != undefined) {
upload_progress_handler = settings.upload_progress_handler;
}
var upload_success_handler = uploadSuccess;
if (settings.upload_success_handler != undefined) {
upload_success_handler = settings.upload_success_handler;
}
var upload_complete_handler = uploadComplete;
if (settings.upload_complete_handler != undefined) {
upload_complete_handler = settings.upload_complete_handler;
}
var file_dialog_complete_handler = fileDialogComplete;
if (settings.file_dialog_complete_handler != undefined) {
file_dialog_complete_handler = settings.file_dialog_complete_handler;
}
var button_width = 72;
if (settings.button_width != undefined) {
button_width = settings.button_width;
}
var button_height = 29;
if (settings.button_height != undefined) {
button_height = settings.button_height;
}
var filetype = "*.jpg;*.png;*.gif";
if (settings.file_types != undefined) {
filetype = settings.file_types;
}
var action = "upload";
if (settings.action != undefined) {
action = settings.action;
}
var buttonId = settings.buttonId;
swfObj = new SWFUpload({
// 基本设置
upload_url: upload_url,
post_params: {
"ASPSESSID": Math.random(),
ac: action
},
// 上传文件设置
file_size_limit: "0",
file_types: filetype,
file_types_description: "支持上传的格式",
file_upload_limit: "500", // 0表示不限制选择文件的数量
// 定义事件
file_queue_error_handler: file_queue_error_handler,
file_dialog_complete_handler: file_dialog_complete_handler,
upload_progress_handler: upload_progress_handler,
upload_error_handler: upload_error_handler,
upload_success_handler: upload_success_handler,
upload_complete_handler: upload_complete_handler,
// 按钮设置
button_placeholder_id: buttonId,
button_width: button_width,
button_height: button_height,
button_cursor: SWFUpload.CURSOR.HAND,
button_window_mode: "transparent",
button_text_top_padding: 0,
button_text_left_padding: 0,
// Flash设置,下面三行必须有
flash_url: "/swfupload/swfupload.swf",
//跨域
prevent_swf_caching: false,
preserve_relative_urls: false,
// 是否开启调试,true是,false否
debug: false
});
}
使用时:
var swfu;
$(function () {
var myswfsetting = {
buttonId: "spanButtonPlaceholder1"
};
InitMySwf(myswfsetting, swfu);
//myswfbox
});
本方法中用了artdialog的弹窗,因此调用时,请保证在本脚本前引用了artdialog
顺便粘一下后台处理的代码:
ajaxMsgModel rm = new ajaxMsgModel { err = 1, msg = "非法提交" };
string ac = context.Request["ac"];
if (ac == "upload")
{
try
{
HttpPostedFile pfile = context.Request.Files["Filedata"];
if (pfile == null)
{
return;
}
string fileformat = pfile.FileName.Substring(pfile.FileName.LastIndexOf(".")).ToLower() ;
string fileflx = ",.zip,.rar,.doc,.docx,.xls,.xlsx,";
if (!fileflx.Contains(fileformat))
{
return;
}
DateTime dtime = DateTime.Now;
string filename = string.Format("{0:yyyyMMddHHmmss}", dtime) + fileformat;
string folder = context.Server.MapPath("/upload/");
if (!Directory.Exists(folder))
{
IOHelper.CreateFoder(folder);
}
string filepath = folder + filename;
//保存文件
pfile.SaveAs(filepath);
rm = new ajaxMsgModel { err = 0, msg = filename,data="/upload/"+filename };
return;
}
catch (Exception ex)
{
rm = new ajaxMsgModel { err = 1, msg = ex.Message };
}
finally
{
string msg = OutputHelper.GetJsonMsg(rm);
context.Response.Write(msg);
}