**上传文件成功两部曲**
1、通过WebUploade插件 获取上传文件的信息数据并传参给服务端程序,为WebUploader意义上的上传文件成功;
2、通过服务端程序 将文件保存到指定路径和文件信息入库,为最终的上传文件成功;
一、遇到的问题
上传简历时,上传文件成功两部曲第二步骤中解析文件入库时,解析文件失败,导致上传文件失败,上传文件时需要提示对应的error信息。
二、解决
******WebUploader官方文档*******
1、上传文件成功两部曲第一步骤,WebUploader意义上的上传文件成功和失败的情况下需要提示对应信息,如上传文件的格式、大小等不符合定义条件,则提示对应信息;
2、上传文件成功两部曲第一步骤,文件解析入库时的上传文件的成功和失败的情况下需要提示对应信息,如文件数据无法正常解析、文件信息入库失败等,需要提示对应信息;
测试代码:
// 初始化Web Uploader
uploader = WebUploader.create({
// 自动上传。
auto: true,
duplicate: false,
resize: false,
// swf文件路径
swf: '../widget/webuploader/Uploader.swf',
// 文件接收服务端。
server: '../cv/uploadTempCv.htm',
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: '#picker',
threads: 5,
chunked: true,
//fileType:'doc,docx,pdf,txt,html,htm',
fileNumLimit: 5,
accept: {
title: 'intoTypes',
extensions: 'doc,docx,pdf,txt,html,htm',
mimeTypes: '.doc,.docx,.pdf,.txt,.html,.htm'
}
});
uploader.on('error', function(handler) {
if(handler=="Q_EXCEED_NUM_LIMIT"){
parent.messageParent("超出最大文件数");
}
if(handler=="F_DUPLICATE"){
parent.messageParent("文件重复");
}
});
// 文件上传过程中创建进度条实时显示。
uploader.on( 'uploadProgress', function( file, percentage ) {
mask();
});
uploader.on( 'uploadError', function( file, reason ) {
parent.messageParent(file.name+"上传失败");
});
uploader.on( 'uploadComplete', function( file ) {
var stats = uploader.getStats();
if(stats.progressNum==0){
setTimeout("window.parent.delRefersh(\"upload\")",2000);
// window.parent.delRefersh("upload");
}
});
uploader.on( 'uploadSuccess', function( file,response ) {
console.log(file);
console.log(response._raw);
console.log(response._raw.err);
if(response.err != '')
{
console.log(response.err.split(",")[2]);
var responseArr = response.err.split(",");
var msg = responseArr[2] + "上传失败,文件数据无法正确解析"
message(msg);
}
// $( '#'+file.id ).addClass('upload-state-done');
});