bootstrap-fileinput文件上传控件的使用 - lvjlml

bootstrap-fileinput文件上传控件的使用

bootstrap-fileinput是基于bootstrap的上传控件,此控件网上有很多例子。我照着例子做后发现请求无法提交到后台,反复测试后发现,不能禁止预览(showPreview要设置为true),禁止预览后fileuploaded则无法响应(实际情况是showPreview=false时, 即便是uploadAsync=true, 也是filebatchuploadsuccess响应返回结果。如果showPreview=true, uploadAsync=true, 才是fileuploaded响应返回结果)。

注意如果出现$("#xxxx").fileinput({}); 不生效的情况请将fileinput.js中最后几行注释掉:

/* $(document).ready(function () {

var $input = $(\'input.file[type=file]\'), count = $input.attr(\'type\') ? $input.length : 0;

if (count > 0) {

$input.fileinput();

}

}); */

<link rel="stylesheet" href="css/bootstrapCSS/bootstrap.min.css">

<link rel="stylesheet" href="css/bootstrapCSS/bootstrap-theme.min.css">

<link rel="stylesheet" href="css/bootstrapCSS/fileinput.css" />

<div>

<input type="file" name="uploadfile" multiple class="file-loading" />

</div>

<script type="text/JavaScript" src="js/jQuery.min.js"></script>

<script type="text/javascript" src="js/bootstrap/fileinput.js"></script>

<script type="text/javascript" src="js/bootstrap/fileinput_locale_zh.js"></script>

<script type="text/javascript" src="js/bootstrap/bootstrap.min.js"></script>

<script type="text/javascript">

$("#uploadfile").fileinput({

language: \'zh\', //设置语言

uploadUrl: "http://127.0.0.1/testDemo/fileupload/upload.do", //上传的地址

allowedFileExtensions: [\'jpg\', \'gif\', \'png\'],//接收的文件后缀

//uploadExtraData:{"id": 1, "fileName":\'123.mp3\'},

uploadAsync: true, //默认异步上传

showUpload: true, //是否显示上传按钮

showRemove : true, //显示移除按钮

showPreview : true, //是否显示预览

showCaption: false,//是否显示标题

browseClass: "btn btn-primary", //按钮样式

dropZoneEnabled: false,//是否显示拖拽区域

//minImageWidth: 50, //图片的最小宽度

//minImageHeight: 50,//图片的最小高度

//maxImageWidth: 1000,//图片的最大宽度

//maxImageHeight: 1000,//图片的最大高度

//maxFileSize: 0,//单位为kb,如果为0表示不限制文件大小

//minFileCount: 0,

maxFileCount: 10, //表示允许同时上传的最大文件个数

enctype: \'multipart/form-data\',

validateInitialCount:true,

previewFileIcon: "<i class=\'glyphicon glyphicon-king\'></i>",

msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",

});

//异步上传返回结果处理

$(\'#uploadfile\').on(\'fileerror\', function(event, data, msg) {

console.log(data.id);

console.log(data.index);

console.log(data.file);

console.log(data.reader);

console.log(data.files);

// get message

alert(msg);

});

//异步上传返回结果处理

$("#uploadfile").on("fileuploaded", function (event, data, previewId, index) {

console.log(data.id);

console.log(data.index);

console.log(data.file);

console.log(data.reader);

console.log(data.files);

var obj = data.response;

alert(JSON.stringify(data.success));

});

//同步上传错误处理

$(\'#uploadfile\').on(\'filebatchuploaderror\', function(event, data, msg) {

console.log(data.id);

console.log(data.index);

console.log(data.file);

console.log(data.reader);

console.log(data.files);

// get message

alert(msg);

});

//同步上传返回结果处理

$("#uploadfile").on("filebatchuploadsuccess", function (event, data, previewId, index) {

console.log(data.id);

console.log(data.index);

console.log(data.file);

console.log(data.reader);

console.log(data.files);

var obj = data.response;

alert(JSON.stringify(data.success));

});

//上传前

$(\'#uploadfile\').on(\'filepreupload\', function(event, data, previewId, index) {

var form = data.form, files = data.files, extra = data.extra,

response = data.response, reader = data.reader;

console.log(\'File pre upload triggered\');

});

</script>

经查资料得知,异步上传处理错误和返回结果要处理fileerror和fileuploaded方法;同步上传处理错误和返回结果filebatchuploaderror和filebatchuploadsuccess方法