Bootstrap之fileinput文件上傳控件

? ? ? 前言~?前段時(shí)間做項(xiàng)目用到了bootstrap里中的文件上傳控件坦袍,對(duì)此特定寫這篇文章,講述一下bootstrap的文件上傳空間的使用方法舞蔽。


我們進(jìn)入正題吧芥驳!

? ? ? ?首先bootstrap是基于jquery的,因此要導(dǎo)入jquery響應(yīng)jar包,可以找到以下網(wǎng)站:jquery相關(guān)js下載谭期。

進(jìn)入網(wǎng)址后堵第,可以選擇我圈起來的地址稚晚,打開瀏覽器輸入,并將該js的所有內(nèi)容復(fù)制下來型诚,創(chuàng)建一個(gè)" .js "文件存儲(chǔ)這些內(nèi)容作為jquery.js使用。

? ? ? ?其次要下載bootstrap的文件包鸳劳,相必你們已經(jīng)有了狰贯,那么我就只推出下載fileinput的相關(guān)文件包即可,以下是下載地址下載fileinput相關(guān)文件包赏廓。

? ? ? ?再次分別導(dǎo)入bootstrap和fileinput的相關(guān)css文件涵紊,js文件,如下所示:

<link?rel="stylesheet"?href="../static/css/bootstrap.css">

<link?rel="stylesheet" href="../static/css/fileinput.min.css">

<link rel="stylesheet"?href="../static/css/themes/theme.css">

<script type="text/javascript" src="../static/js/jquery-3.3.1.min.js"></script>

<script?type="text/javascript" src="../static/js/fileinput.min.js"></script>

<script type="text/javascript" src="../static/js/locales/zh.js"></script>

<script?type="text/javascript" src="../static/js/themes/theme.js"></script>

? ? ? ?后面可以選擇兩種方式配置fileinput的相關(guān)屬性幔摸,一種是在jsp或者h(yuǎn)tml中直接配置摸柄,第二種是寫一個(gè)js,然后將該js引入既忆。本人推薦使用第二種驱负,因?yàn)楸容^靈活。下面我都列出兩種方式患雇。

第一種:

<div?class="container kv-main">

<div?class="row ">

<div style="margin:100px 240px;width:700px;height:300px ">

<form?nctype="multipart/form-data">

<input?id="file-0a" class="file" name="file" type="file" multiple data-min-file-count="1">

<br>

</form>

</div>

</div>


<script>

$('#file-0a').fileinput({

'theme':'explorer',

language:'zh',

uploadUrl:'<%=path%>/uploadMultipleFile.do',

showPreview:true,//是否顯示預(yù)覽

? ? allowedPreviewTypes : ['image','html','text','video','audio','flash'],

maxFileCount :3,// 表示允許同時(shí)上傳的最大文件個(gè)數(shù)

});

$('#file-0a').on('fileuploaderror',function(event, data, previewId, index) {

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

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

console.log(data);

console.log('File upload error');

});

$('#file-0a').on('fileerror',function(event, data) {

console.log(data.id);

console.log(data.index);

console.log(data.file);

console.log(data.reader);

console.log(data.files);

});

$('#file-0a').on('fileuploaded',function(event, data, previewId, index) {

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

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

console.log('File uploaded triggered');

});

</script>

第二種:

$(function () {

? ? //0.初始化fileinputvaroFileInput =new FileInput();

? ? oFileInput.Init("file-0a", "/api/OrderApi/ImportOrder");

});

//初始化fileinputvarFileInput =function () {

? ? varoFile =new Object();

? ? //初始化fileinput控件(第一次初始化)oFile.Init =function(ctrlName, uploadUrl) {

? ? varcontrol = $('#' + ctrlName);

? ? //初始化上傳控件的樣式? ? control.fileinput({

? ? ? ? language: 'zh',//設(shè)置語(yǔ)言

? ? ? ? uploadUrl: uploadUrl,//上傳的地址

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

? ? ? ? showUpload:true,//是否顯示上傳按鈕

? ? ? ? showCaption:false,//是否顯示標(biāo)題

? ? ? ? browseClass: "btn btn-primary",//按鈕樣式

? ? ? ? //dropZoneEnabled: false,//是否顯示拖拽區(qū)域

? ? ? ? //minImageWidth: 50, //圖片的最小寬度

? ? ? ? //minImageHeight: 50,//圖片的最小高度

? ? ? ? //maxImageWidth: 1000,//圖片的最大寬度

? ? ? ?//maxImageHeight: 1000,//圖片的最大高度

? ? ? ?//maxFileSize: 0,//單位為kb跃脊,如果為0表示不限制文件大小

? ? ? ?//minFileCount: 0,maxFileCount: 10, //表示允許同時(shí)上傳的最大文件個(gè)數(shù)

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

? ? ? ? validateInitialCount:true,

? ? ? ? previewFileIcon: "",

? ? ? ? msgFilesTooMany: "選擇上傳的文件數(shù)量({n}) 超過允許的最大數(shù)值{m}!",? ? });

? ? //導(dǎo)入文件上傳完成之后的事件

$('#file-0a').on('fileuploaderror',function(event, data, previewId, index) {

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

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

console.log(data);

console.log('File upload error');

});

$('#file-0a').on('fileerror',function(event, data) {

console.log(data.id);

console.log(data.index);

console.log(data.file);

console.log(data.reader);

console.log(data.files);

});

$('#file-0a').on('fileuploaded',function(event, data, previewId, index) {

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

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

console.log('File uploaded triggered');

});

}

? ? return oFile;

};

以下將提供fileinput的相關(guān)api

屬性名? ? ? ?屬性類型? ? ?描述? ? ?說明? ? ? 默認(rèn)值

language? ? ?String? ? 多語(yǔ)言設(shè)置苛吱,使用時(shí)需提前引入\locales文件夾下對(duì)應(yīng)的語(yǔ)言文件酪术,

中文zh,引入語(yǔ)言文件必須放在fileinput.js之后? ? ? ? ? ? ? ? ? ? 'en'

showCaption? ? ?Boolean? ? ?是否顯示被選文件的簡(jiǎn)介? ? ? ? ? true

showBrowse? ? ? Boolean? ? ?是否顯示瀏覽按鈕? ? ? ? ? ? ? ? ? ? true

showPreview? ? ? Boolean? ? 是否顯示預(yù)覽區(qū)域? ? ? ? ? ? ? ? ? ? true

showRemove? ? ? Boolean? ? 是否顯示移除按鈕? ? ? ? ? ? ? ? ? ?true,

showUpload? ? ? ? Boolean? ? 是否顯示上傳按鈕? ? ? ? ? ? ? ? ? ?true,

showCancel? ? ? ? Boolean? ? 是否顯示取消按鈕? ? ? ? ? ? ? ? ? ?true,

showClose:? ? ? ? ?Boolean? ? 是否顯示關(guān)閉按鈕? ? ? ? ? ? ? ? ? ?true

showUploadedThumbs? ? ? ?Boolean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? true

browseOnZoneClick? ? ? ? ? ? Boolean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?false

autoReplace? ? ? ? ? ? ? ? ? ? ? ? Boolean? ? ? ? 是否自動(dòng)替換當(dāng)前圖片翠储,設(shè)置為true時(shí)绘雁,再次選擇文件,

會(huì)將當(dāng)前的文件替換掉援所。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? false

generateFileId? ? ? ? ? ? ? ? ? ? ?Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? null

previewClass? ? ? ? ? ? ? ? ? ? ? String? ? 添加預(yù)覽按鈕的類屬性? ? ? ? ? ‘’

captionClass? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ‘’

frameClass? ? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'krajee-default'

mainClass? ? ? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'file-caption-main'

mainTemplate? ? ? ? ? ? ? ? ? ? ?Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null

purifyHtml? ? ? ? ? ? ? ? ? ? ? ? ? ?Boolean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? true

fileSizeGetter? ? ? ? ? ? ? ? ? ? ? Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null

initialCaption? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?''

initialPreview? ? ? ? ? ? ? ? ? ?Array/Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[]

initialPreviewDelimiter? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'*$$*'

initialPreviewAsData? ? ? ? ? ?Boolean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? false

initialPreviewFileType? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'image'

initialPreviewConfig? ? ? ? ? Array/Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[]

initialPreviewThumbTags? ? Array/Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[]

previewThumbTags? ? ? ? ? ? ? ?Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {}

initialPreviewShowDelete? ? ? ?Boolean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? true

removeFromPreviewOnError? Boolean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?false

deleteUrl? ? ? ? ? ? String? ? ? ? ? ?刪除圖片時(shí)的請(qǐng)求路徑? ? ? ? ? ? ? ? ''

deleteExtraData? ?Object? ? ? ?刪除圖片時(shí)額外傳入的參數(shù)? ? ? ? ?{}

overwriteInitial? ? ? Boolean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? true

previewZoomButtonIcons? ? ? ? ? ?Object

?{

? ?prev: '',

? next: '',

? toggleheader: '',

? fullscreen: '',

? borderless: '',

??close: ''

},

previewZoomButtonClasses? ? ? ?Object

? {?

prev: 'btn btn-navigate',

? next: 'btn btn-navigate',

? toggleheader: 'btn btn-default btn-header-toggle',

? fullscreen: 'btn btn-default',

? borderless: 'btn btn-default',

? close: 'btn btn-default'

},

preferIconicPreview? ? ? ? ? ? ? ?Boolrean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?false

preferIconicZoomPreview? ? ? ?Boolrean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? false

allowedPreviewTypes? ? ? ? ? ? ?undefined? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?undefined

allowedPreviewMimeTypes? ? ?Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null

allowedFileTypes? ? ? ? ? ? ? ? ? ? ?Object? ? ? ? ? ? 接收的文件后綴庐舟,如['jpg', 'gif', 'png'],不填將不限制上傳文件后綴類型? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null

allowedFileExtensions? ? ? ? ? ? ?Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null

defaultPreviewContent? ? ? ? ? ? Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null

customLayoutTags? ? ? ? ? ? ? ? ? Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{}

customPreviewTags? ? ? ? ? ? ? ?Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {}

previewFileIcon? ? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?''

previewFileIconClass? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'file-other-icon'

previewFileIconSettings? ? ? ? ?Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {}

previewFileExtSettings? ? ? ? ? ?Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {}

buttonLabelClass? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'hidden-xs'

browseIcon? ? ? ? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ' '

browseClass? ? ? ? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'btn btn-primary'

removeIcon? ? ? ? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ''

removeClass? ? ? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'btn btn-default'

cancelIcon? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ''

cancelClass? ? ? ? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'btn btn-default'

uploadIcon? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ''

uploadClass? ? ? ? ? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'btn btn-default'

uploadUrl? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ?上傳文件路徑? ? ? ? ? null

uploadAsync? ? ? ? ? ? ? ? ? ? ? ? ? boolean? ? 是否為異步上傳? ? ? true

uploadExtraData? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?上傳文件時(shí)額外傳遞的參數(shù)設(shè)置? ? ? ? ? {}

zoomModalHeight? ? ? ? ? ? ? ? number? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?480

minImageWidth? ? ? ? ? ? ? ? ? ? String? ? ? ? ? 圖片的最小寬度? ? ?null

minImageHeight? ? ? ? ? ? ? ? ? String? ? ? ? ? ?圖片的最小高度? ? ? null

maxImageWidth? ? ? ? ? ? ? ? ? String? ? ? ? ? ?圖片的最大寬度? ? ? null

maxImageHeight? ? ? ? ? ? ? ? String? ? ? ? ? ? 圖片的最大高度? ? ? null

resizeImage? ? ? ? ? ? ? ? ? ? ? ? boolean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? false

resizePreference? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'width'

resizeQuality? ? ? ? ? ? ? ? ? ? ? number? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0.92

resizeDefaultImageType? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'image/jpeg'

minFileSize? ? ? ? ? ? ? ? ? ? ? ? ? number? ? 單位為kb,上傳文件的最小大小值? ? ?0

maxFileSize? ? ? ? ? ? ? ? ? ? ? ? ?number? ? 單位為kb任斋,如果為0表示不限制文件大小? ? 0

resizeDefaultImageType? ? ? number? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 25600(25MB)

minFileCount? ? ? ? ? ? ? ? ? ? ? ?number? ? ?表示同時(shí)最小上傳的文件個(gè)數(shù)? ? ? ? ? ? ? ? ? ? 0

maxFileCount? ? ? ? ? ? ? ? ? ? ? number? ? 表示允許同時(shí)上傳的最大文件個(gè)數(shù)? ? ? ? ? ? ? 0

validateInitialCount? ? ? ? ? ? ? boolean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? false

msgValidationErrorClass? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'text-danger'

msgValidationErrorIcon? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?' '

msgErrorClass? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'file-error-message'

progressThumbClass? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"progress-bar progress-bar-success progress-bar-striped active"

rogressClass? ? ? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"progress-bar progress-bar-success progress-bar-striped active"

progressCompleteClass? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? "progress-bar progress-bar-success"

progressErrorClass? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"progress-bar progress-bar-danger"

progressUploadThreshold? ? number? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?99

previewFileType? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? 預(yù)覽文件類型,內(nèi)置['image', 'html', 'text', 'video', 'audio', 'flash', 'object',‘other‘]等格式? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'image'

elCaptionContainer? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? null

elCaptionText? ? ? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ?設(shè)置標(biāo)題欄提示信息? ? ? ? ? ? ? null

elPreviewContainer? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null

elPreviewImage? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null

elPreviewStatus? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null

elErrorContainer? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null

errorCloseButton? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '×'

slugCallback? ? ? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ?暫時(shí)沒有搜到說明继阻,調(diào)試顯示,在文件選擇后會(huì)調(diào)到這個(gè)方法废酷。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? null

dropZoneEnabled? ? ? ? ? ? ? ? boolean? ? ? ?是否顯示拖拽區(qū)域? ? ? ? ? ? ? ? ? ? ?true

dropZoneTitleClass? ? ? ? ? ? ? String? ? ? ? ? 拖拽區(qū)域類屬性設(shè)置? ? ? ? ?'file-drop-zone-title'

fileActionSettings? ? ? ? ? ? ? ? ?Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {}

otherActionButtons? ? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ''

textEncoding? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? 編碼設(shè)置? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'UTF-8'

ajaxSettings? ? ? ? ? ? ? ? ? ? ? ? Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {}

ajaxDeleteSettings? ? ? ? ? ? ? Object? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {}

showAjaxErrorDetails? ? ? ? ?boolean? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?true

7瘟檩、Method說明:

方法名參數(shù)描述

fileerror?異步上傳錯(cuò)誤結(jié)果處理

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

});

fileuploaded?異步上傳成功結(jié)果處理

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

})

filebatchuploaderror?同步上傳錯(cuò)誤結(jié)果處理

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

});

filebatchuploadsuccess?同步上傳成功結(jié)果處理

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

});

filebatchselected?選擇文件后處理事件

$("#fileinput").on("filebatchselected", function(event, files) {

});

upload?文件上傳方法

$("#fileinput").fileinput("upload");

fileuploaded?上傳成功后處理方法

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

});

filereset??

fileclear?點(diǎn)擊瀏覽框右上角X 清空文件前響應(yīng)事件

$("#fileinput").on("fileclear",function(event, data, msg){

});

filecleared?點(diǎn)擊瀏覽框右上角X 清空文件后響應(yīng)事件

$("#fileinput").on("filecleared",function(event, data, msg){

});

fileimageuploaded?在預(yù)覽框中圖片已經(jīng)完全加載完畢后回調(diào)的事件


? ?后臺(tái)代碼

/**

* 多文件上傳

* @param files 文件數(shù)組

* @param request

* @return

* @throws IOException

*/

@RequestMapping(value ="/uploadMultipleFile.do", method = RequestMethod.POST, produces ="application/json;charset=utf8")

@ResponseBody

public Message uploadMultipleFileHandler(@RequestParam("file") MultipartFile[] files, HttpServletRequest request)throws IOException {

Message msg =new Message();

ArrayList arr =new ArrayList();

String serverPath=null;

for (int i =0; i < files.length; i++) {

MultipartFile file = files[i];

if (!file.isEmpty()) {

InputStream in =null;

OutputStream out =null;

try {

if(file.getOriginalFilename().substring(0,file.getOriginalFilename().indexOf(".")).contains("表1-惡意程序監(jiān)測(cè)統(tǒng)計(jì)")){

serverPath=FileUtil.getMalwareUploadDirFilePath(file.getOriginalFilename(), request);

}else{

serverPath=FileUtil.getHighRiskUploadDirFilePath(file.getOriginalFilename(), request);

}

/*String serverPath=dir.getAbsolutePath() + File.separator + file.getOriginalFilename();*/

? ? ? ? ? ? ? ? File serverFile =new File(serverPath);

in = file.getInputStream();

out =new FileOutputStream(serverFile);

byte[] b =new byte[1024];

int len =0;

while ((len = in.read(b)) >0) {

out.write(b,0, len);

}

out.close();

in.close();

logger.info("Server File Location=" + serverFile.getAbsolutePath());

}catch (Exception e) {

arr.add(i);

}finally {

if (out !=null) {

out.close();

out =null;

}

if (in !=null) {

in.close();

in =null;

}

}

}else {

arr.add(i);

}

}

if(arr.size() >0) {

msg.setStatus(Status.ERROR);

msg.setError("Files upload fail");

msg.setErrorKys(arr);

}else {

msg.setStatus(Status.SUCCESS);

msg.setStatusMsg("Files upload success");

}

return msg;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市澈蟆,隨后出現(xiàn)的幾起案子墨辛,更是在濱河造成了極大的恐慌,老刑警劉巖趴俘,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件睹簇,死亡現(xiàn)場(chǎng)離奇詭異奏赘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)太惠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門磨淌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凿渊,你說我怎么就攤上這事梁只。” “怎么了埃脏?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵搪锣,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我彩掐,道長(zhǎng)构舟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任堵幽,我火速辦了婚禮狗超,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘朴下。我一直安慰自己抡谐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布桐猬。 她就那樣靜靜地躺著麦撵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪溃肪。 梳的紋絲不亂的頭發(fā)上免胃,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音惫撰,去河邊找鬼羔沙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛厨钻,可吹牛的內(nèi)容都是我干的扼雏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼夯膀,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼诗充!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诱建,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蝴蜓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茎匠,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡格仲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诵冒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凯肋。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖汽馋,靈堂內(nèi)的尸體忽然破棺而出否过,到底是詐尸還是另有隱情,我是刑警寧澤惭蟋,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站药磺,受9級(jí)特大地震影響告组,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜癌佩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一木缝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧围辙,春花似錦我碟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至掸冤,卻和暖如春厘托,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背稿湿。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工铅匹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饺藤。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓包斑,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親涕俗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子罗丰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354