1.特性
- 該插件可以將簡單的
<input type=file />
轉(zhuǎn)換為高級的文件選取控件。對于不支持 JQuery 和 Javascript 的瀏覽器,將會回滾到正常的 HTML<input type="file" />
-
fileinput
由以下三部分組成,其中包含用于控制顯示的選項和模板- 文件標題部分:顯示所選文件的簡要信息
- 文件操作按鈕部分: 用以瀏覽、移除、上傳文件
- 文件預覽部分: 在客戶端(瀏覽器)預覽選擇的文件(支持 圖片、文本、flash、視頻文件的預覽),其他文件類型會顯示為正常文件的縮略圖
- 當設(shè)置
<input type="file" />
的class="file"
后,插件將自動的將該input
轉(zhuǎn)換為高級的文件選擇器,設(shè)置在該input
身上的選項,將會被轉(zhuǎn)換為data
屬性 - 能夠選擇和預覽多個文件。使用 HTML5
file reader
API讀取和預覽文件。如果選擇了許多文件,則顯示正在加載到預覽區(qū)域的文件的進度。 - 提供預定義的模板和CSS類,可以根據(jù)需要更改這些模板和類,以設(shè)置
fileinput
顯示的樣式。 - 能夠配置插件以顯示帶有初始標題的 圖像/文件的初始預覽(對于記錄更新方案更有用)。請參閱插件選項部分中的InitialPreview、InitialPreviewConfig和InitialCaption屬性以配置此項。
- 能夠?qū)?nèi)容縮放為詳情預覽。在預覽中查看縮放內(nèi)容的幻燈片,最大化為無邊框或全屏預覽。
- 能夠通過拖放對初始預覽中的內(nèi)容進行排序/重新排列。
- 能夠?qū)Σ寮O(shè)置主題,并控制樣式和布局。
- 在同一頁面支持多語言
- 顯示、隱藏以下任意或全部的選項
- 標題區(qū)
- 預覽區(qū)
- 上傳按鈕
- 移除按鈕
- 自定義目標容器元素的位置,以顯示整個插件、標題容器、標題文本、預覽容器、預覽圖像和預覽狀態(tài)。
- 對于文本文件預覽,將文本自動換行到縮略圖寬度,并顯示換行指示器鏈接以在懸停時顯示完整文本。您可以自定義換行指示器(默認為…)。
- 可自定義預覽、進度、選擇的文件的信息
- 在表單提交的時候,自動觸發(fā)文件上傳。支持用于自定義基于
Ajax
的上傳的上傳路由/服務(wù)器操作參數(shù)。 - 觸發(fā)
JQuery
事件以進行高級開發(fā)。當前可用的事件有filereset
、fileclear
、filecleared
、fileloaded
和fileerror
。 - 支持
readonly
和disabled
的input
- 文件名太長超過容器寬度時,動態(tài)設(shè)置標題欄的尺寸
- 在預覽容器中完全加載圖像后引發(fā)新的
fileimageuploaded
事件。 - 當預覽圖超過預覽容器尺寸的時候,自動縮放預覽圖
- 完全模板化和可擴展,允許按照開發(fā)人員的需求配置
fileinput
。 - 基于各種文件預覽類型的智能預覽。內(nèi)置文件支持類型有 圖像、文本、HTML、視頻、音頻、Flash、對象 和 其他。
-
allowedPreviewTypes
: 通過配置allowedPreviewTypes
選項,來設(shè)置哪些文件類型可被預覽,默認為['image', 'html', 'text', 'video', 'audio', 'flash', 'object']
,因此,默認情況下,所有文件類型都被視為要預覽的對象。例如,如果僅僅需要預覽image
和video
文件,可做如下設(shè)置:{allowedPreviewTypes: ['image', 'video']};
, 禁止所有文件類型的預覽,將預覽區(qū)域設(shè)置為一個icon
而不是一個縮略圖,可設(shè)置previewIcon
選項,如:{previewIcon: null}
, 可將該選項設(shè)置為null
,''
,false
; -
allowedPreviewMimeTypes
: 除了allowedPreviewTypes
外,還可以控制可以顯示哪些MIME
類型文件可進行預覽。該值默認為null
, 即所有MIME
類型文件均可預覽.注:使用2.5.0版,您現(xiàn)在可以通過設(shè)置 allowedFileTypes 和 allowedFileExtensions 來控制允許上傳的文件類型或擴展名。
-
layoutTemplates
: 允許您在一個屬性中配置所有布局模板設(shè)置。可以配置的布局對象有:main1
、main2
、preview
、caption
和modal
。 -
previewTemplates
: 針對每個預覽類型的所有預覽模板都被合并進一個屬性,鍵是在allowedPreviewTypes
中設(shè)置的格式,值是用于預覽的模板。每個預覽文件類型(常規(guī)、圖像、文本、HTML、視頻、音頻、Flash、對象和其他)都有默認的預構(gòu)建模板。通用模板僅用于使用直接標記顯示initialPreview
內(nèi)容。 -
previewSettings
:允許您為每個預覽圖像類型配置寬度和高度。插件為每種預定義類型設(shè)有默認寬度和高度,即圖像、文本、HTML、視頻、音頻、Flash和對象。 -
fileTypeSettings
: 允許通過回調(diào)函數(shù)來配置和標識每個預覽文件類型,該插件有默認的預定義回調(diào)函數(shù)來標識每種文件類型。即圖像、文本、HTML、視頻、音頻、Flash和對象。 - 在模板中替換標簽已經(jīng)得到了增強。使用此版本,它將自動檢查模板字符串中要替換的每個標記是否多次出現(xiàn)。
- 通過返回輸出以中止任何其他事件中的上傳,可以輕松地操作事件并添加自定義驗證消息。
注意:
Flash預覽需要安裝Shockwave Flash并由客戶端瀏覽器支持。Flash預覽當前僅在WebKit瀏覽器中成功工作。然而,所有支持HTML5視頻/音頻標簽的現(xiàn)代瀏覽器都支持視頻和音頻格式。請注意,HTML5視頻元素(例如MP4、WebM、OGG、MP3、WAV)支持的視頻/音頻格式數(shù)量有限。建議視頻文件的大小要小(通過maxfilesize屬性控制),這樣就不會影響預覽性能。您可以從這個插件repo的examples目錄復制一些文件,以測試一些flash和video文件的示例。
2. 文件上傳特性
在4.0.0版本中,該插件包含對Ajax上傳的內(nèi)置支持,以及選擇性地添加或刪除文件。Ajax上傳功能基于HTML5 FormData
和 XMLHttpRequest 2
標準構(gòu)建。大多數(shù)現(xiàn)代瀏覽器都支持這個標準,但是對于不支持的瀏覽器,插件將自動降級為基于表單的正常提交。
- 使用
HTML5
的FormData
添加基于Ajax
的上傳功能(大多數(shù)現(xiàn)代瀏覽器都支持)。如果不支持,將降級為基于表單的正常文件提交。 - 為了使用
Ajax
文件上傳,必須設(shè)置uploadUrl
屬性 - 增強插件現(xiàn)在允許添加、追加、刪除文件(基于許多人的反饋)。這樣就可以追加文件進行預覽。
- 新的
DRAG & DROP
區(qū)域可以通過拖拽來添加和追加文件 - 可逐個或批量刪除、上傳文件
- 若
showPreview
選項被設(shè)為false
, 或者不支持uploadUrl
, 插件將自動降級為基于表單的正常上傳 - 可為待上傳、成功上傳、上傳失敗的文件配置指示器
- 能夠為基于
Ajax
的上傳添加額外的form data
; - 上傳進度條和獨立的上傳指示器 縮略圖
- 能夠取消或退出正在進行的
Ajax
上傳 - 建立初始預覽內(nèi)容(例如保存圖像的庫)。可以設(shè)置初始預覽操作(默認預覽圖只有刪除按鈕,在預覽圖右下角)。還可以為初始預覽縮略圖設(shè)置其他自定義操作按鈕。
- 一旦
Ajax
上傳完成,自動用從服務(wù)器返回的內(nèi)容刷新預覽圖
3. 使用模式
模式1: 表單提交
在此模式下,不設(shè)置uploadURL屬性。該插件將使用原生的 file input
來存儲文件,并且可以在正常表單提交后讀取(必須將 input
包裹在表單中)。這對于單個文件上載或多個文件上載的更簡單場景很有用。配置很簡單,您可以從原生表單提交中讀取所有 POST
的數(shù)據(jù)。但是,請注意,原生的 file input
是只讀的,不能由外部代碼修改或更新。尤其是對于多文件輸入選擇,不能將文件追加到已選擇的文件列表中。如果試圖在已選定的 file input
上選擇文件,它將覆蓋并清除以前的選擇。同樣,在此模式下,上傳之前不能選擇性地 移除/刪除 已添加的文件。
注意:
自v4.4.8版以來,基于表單的上傳支持文件拖放。但是,對于基于表單的上傳,它僅限于支持將FileList
對象分配給file input
的瀏覽器,如chrome和mozilla。
模式2:Ajax 提交
此模式下,必須設(shè)置 uploadUrl
給一個有效的 ajax
處理服務(wù)器。若設(shè)置了 uploadUrl
, 那么插件將自動設(shè)置上傳模式為 ajax
上傳。該模式提供了一些 表單提交 模式不支持的高級特性。只有在此模式下,才能使用如在預覽區(qū) 追加 、移除 文件,獲取上傳進度條,調(diào)整圖像大小的功能。瀏覽器必須支持 HTML5 FromData/XHR2
才能正常工作,并且處理Ajax調(diào)用的服務(wù)器代碼必須返回有效的JSON響應(yīng)。
模式對比
功能/需求 | 表單提交 | ajax 提交 |
---|---|---|
單文件和多文件上傳 | √ | √ |
使用 HTML5 文件 API 預覽文件 | √ | √ |
通過表單提交直接讀取文件 | √ | |
每個預覽縮略圖有獨立的文件刪除圖標 | √1
|
√2
|
每個預覽縮略圖有獨立的文件上傳圖標 | √ | |
要求服務(wù)器端返回有效的JSON | √ | |
要求瀏覽器支持 HTML FormData/XHR2 | √ | |
服務(wù)器端代碼能處理 ajax 并返回 JSON |
√ | |
通過拖放區(qū)拖放文件 | √3
|
√ |
能夠為已選擇的列表追加文件 | √ | |
能夠為已選擇的列表刪除文件 | √1
|
√ |
支持上傳進度條 | √ | |
支持上傳狀態(tài) | √ | |
支持可恢復的 / 塊上傳 | √ | |
支持讀取額外的 FormData 數(shù)據(jù) | 直接通過表單提交 | 通過設(shè)置 uploadExtraData 屬性 |
支持上傳前設(shè)置圖片尺寸 | √ |
-
1 - 通過
initialPreviewConfig
(不適用未上傳的客戶端選定文件) -
2 - 對于服務(wù)器上傳的文件(通過
initialPreviewConfig
) 和客戶端運行時已選擇的文件 -
3 - 自4.4.8版本開始,支持基于表單的拖放,然而,基于表單的上傳只支持像 Chrome 和 Mozilla 這樣的支持分配文件列表對象
FileList
給原生的file input
的瀏覽器
4 使用方法
注意:
如果給該input
添加一個file
的類名,插件將自動的轉(zhuǎn)換<input type="file" />
為文件選擇控制器。但是如果通過javascript
來初始化插件, 就不要給該input
添加file
這個class
(因為這會導致重復的初始化并跳過javascript
代碼)
使用:步驟1
在 <head></head>
之間導入以下資源
<!-- 支持bootstrap 4.x . 也可以使用 bootstrap 3.3.x 版本的 css -->
<link rel="stylesheet" crossorigin="anonymous">
<link media="all" rel="stylesheet" type="text/css" />
<!-- 如果文字排版為從右向左,在 fileinput 插件的css后導入 RTL CSS。可解注釋以下代碼 -->
<!-- link media="all" rel="stylesheet" type="text/css" /-->
<!-- 使用 `fas` 主題(或 Bootstrap 4.x)需導入 font awesome 圖標庫. 插件中默認使用的圖標是僅在 Bootstrap 3.x. 中打包的 glyphicons -->
<link rel="stylesheet" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.min.js" crossorigin="anonymous"></script>
<!-- 當需要圖片自動調(diào)整方向時,或恢復已調(diào)整大小的圖像的exif數(shù)據(jù)時,或需要上傳前重置圖片尺寸,那么該 piexif.min.js 必須在 fileinput.min.js 之前導入 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/js/plugins/piexif.min.js" type="text/javascript"></script>
<!-- 僅當您希望在初始預覽中對文件進行排序/重新排列時,才需要sortable.min.js。必須在fileinput.min.js之前加載 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/js/plugins/sortable.min.js" type="text/javascript"></script>
<!-- purify.min.js 用來凈化在預覽區(qū)的HTML文件 的 HTML 內(nèi)容的. 必須在fileinput.min.js之前加載 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/js/plugins/purify.min.js" type="text/javascript"></script>
<!-- 如果使用bootstrap 4.x(用于poppover和工具提示),則需要下面的popper.min.js。. 您也可以使用 3.3.x 版本的 bootstrap js ,而不必引入 popper.min.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<!-- 如果想在模態(tài)框中縮放和預覽文件內(nèi)容,則要導入下面的 bootstrap.min.js . 支持bootstrap 4.x. 也可導入 3.3.x 版本的 bootstrap js . -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<!-- 導入插件的js文件 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/js/fileinput.min.js"></script>
<!-- 使用 Font Awesome 主題 (fas) 時,需要導入以下主題的js文件 -->
< script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/themes/fas/theme.min.js"></script -->
<!-- 如果需要設(shè)置插件語言,則可輔助性的導入以下路徑的語言文件包,將 LANG.js替換為你想設(shè)置的語言 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/js/locales/LANG.js"></script>
如果你注意到,導入 fileinput.min.css
和 fileinput.min.js
之外,還需要導入 jquery.min.js
和 bootstrap.min.css
. 引入Font Awesome css 文件fas/theme.min.js
以導入 Font Awesome主題(注意:默認Bootstrap 4.x
版本不包含 glyphicons
圖標,所以你或許想同時使用font awesome Css 和 Font Awesome 主題)。你可以根據(jù)需要選擇插件語言。當需要從右向左,則需要在fileinput.min.css
之后導入fileinput-rtl.min.css
Bootstrap 4.x 的使用
注意,如果在使用該插件的時候,使用的是Bootstrap 4.0 和上面的插件,那么glyphicons
不再隨Bootstrap 4.x
打包。那么當使用 Bootstrap 4.x 時,圖標選項如下:
- OPTION 1: 單獨載入Glyphicons
的字體和css以保證插件的默認 icons 能被支持,因為插件默認使用的icons為Glyphicons
- OPITON 2: 使用作者提供的 Font Awesome 主題來配置插件并導入 Font Awesome 的 css 字體
- OPTION 3: 更改插件中使用的圖標或創(chuàng)建自己的主題以呈現(xiàn)自己喜歡的圖標。您可以查閱 krajee 提供的Font Awesome,設(shè)置您自己的圖標主題。
可選的依賴插件
-
piexif.min.js
是[Piexifjs plugin by hMatoba](https://github.com/hMatoba/piexifjs)
的源文件。當我們想讓JPEG圖片文件基于朝向標簽自動調(diào)整方向時,它需要在fileinput.min.js
之前加載。當使用fileinput
插件的 圖像尺寸調(diào)整特性來恢復exif
數(shù)據(jù)給圖像時,也需要載入此庫 - sortable.min.js文件是rubaxa可排序插件的源文件。如果希望在初始預覽中對縮略圖進行排序,則需要在fileinput.min.js之前加載它。
- purify.min.js文件是cure53的dompurify插件的源文件。如果您希望為HTML內(nèi)容預覽凈化HTML,則需要在fileinput.min.js之前加載它。
使用:步驟2a
在頁面中初始化該插件。例如使用 javascript
進行初始化 - 下面的代碼可以放在 document.ready
或者任意你想放置的地方
// initialize with defaults
$("#input-id").fileinput();
// with plugin options
$("#input-id").fileinput({'showUpload':false, 'previewFileType':'any'});
使用:步驟2b
或者,您可以直接通過input
的HTML5 data
屬性將插件選項設(shè)置給任何input
。注意,對于這種情況,您需要給 input
設(shè)置一個 file
的類名。
如前所述,當通過javascript初始化插件時(步驟2a),不能給 input
設(shè)置名為 file
的類。
<input id="input-id" type="file" class="file" data-preview-file-type="text">
5 翻譯(語言設(shè)置)
如上使用方法版塊所述,翻譯在4.1.8版本可用,遵照如下步驟來設(shè)置插件語言
- 從如下路徑
/js/locales/<lang>.js.
載入語言腳本文件,該腳本必須在fileinput.js
文件之后載入。<lang>
意為語言代碼<如 de, fr...>.如果你想要的語言文件不存在,你可以提交一個pull請求,來創(chuàng)建新的翻譯文件。查看示例語言文件,為您自己的語言 復制并創(chuàng)建 翻譯配置文件 - 配置插件的語言屬性
language
為能被識別的語言代碼
6 Ajax 方式上傳
您需要設(shè)置服務(wù)器方法來解析并通過Ajax返回正確的響應(yīng)。可遵照如下描述來配置異步或同步上傳。
異步上傳
這是默認模式.其中 uploadAsync
選項設(shè)置為 true
.當上傳多個文件時,異步模式允許為每個文件上傳觸發(fā)并行服務(wù)器調(diào)用。通過設(shè)置 maxFileCount
屬性,可以控制一次允許上傳的最多文件數(shù)。異步模式下,將驗證并更新每個縮略圖的進度
-
服務(wù)器端接收數(shù)據(jù)
在uploadURL
中設(shè)置的服務(wù)器方法從插件接收以下數(shù)據(jù)-
文件數(shù)據(jù): 此數(shù)據(jù)以非常類似于表單
file input
的格式發(fā)送到服務(wù)器,例如在PHP中,你可以通過$_FILES['input-name']
讀取該數(shù)據(jù),input-name
是input
標簽的name
屬性。如果你沒有給input
設(shè)置name
屬性,默認的name
是file_data
. 注意,多文件上傳需要設(shè)置input
的multiple
屬性。那么在 PHP 中,你會通過$_FILES['file_data']
來讀取文件數(shù)據(jù) -
額外數(shù)據(jù): 插件能發(fā)送額外數(shù)據(jù)給服務(wù)器的上傳接口。可通過設(shè)置
uploadExtraData
屬性為鍵值對形式的關(guān)聯(lián)數(shù)組對象,因此,如果設(shè)置了uploadExtraData=id:'kv-1'
,那么 PHP 中,可通過$_post['id']
來讀取 id 值
-
文件數(shù)據(jù): 此數(shù)據(jù)以非常類似于表單
注意
在異步模式下,您將始終在處理Ajax
上傳的服務(wù)器上接受一個單個文件。基本上,每個選中要上傳的文件均會觸發(fā)并行的Ajax
調(diào)用,您需要相應(yīng)的編寫服務(wù)器上傳邏輯,來始終讀取和上傳一個文件。同樣,在下面的發(fā)送數(shù)據(jù)部分,必須返回僅反映接收到的單個文件的數(shù)據(jù)的初始預覽
-
服務(wù)器端發(fā)送數(shù)據(jù)
服務(wù)端在uploadUrl
接口中,必須返回一個json對象,如下
// example JSON response from server
{
error: 'An error exception message if applicable',
initialPreview: [
// 如果希望在上傳后立即顯示服務(wù)器上傳文件的初始預覽縮略圖,則需要初始化該屬性
],
initialPreviewConfig: [
// 在初始預覽中的每一項的配置
],
initialPreviewThumbTags: [
// 初始預覽縮略圖標記配置,渲染時將動態(tài)替換該配置
],
append: true // 是否在初始預覽中追加內(nèi)容,也可將該屬性設(shè)置為 `false` 來覆蓋初始預覽
}
如果 服務(wù)器沒有數(shù)據(jù)返回,至少應(yīng)返回一個空對象 {}
. 該對象由五部分組成。在異步模式下,你始終會接受到一個文件記錄,因此請相應(yīng)的調(diào)整代碼。
-
error
: 字符串類型。該屬性是批量上傳的報錯信息,它有助于插件對上傳錯誤的識別。例如,服務(wù)器端可能會發(fā)送{error: 'You are not allowed to upload such a file.'}
.注意,插件將自動驗證和展示ajax
異常錯誤 -
initialPreview
: 數(shù)組。指向上傳文件的圖片列表或任何 HTML 標記的列表。您將始終在此數(shù)組中發(fā)送發(fā)送一行-因為您將始終以異步上傳的模式接收到一個文件。如果設(shè)置了該屬性,插件會自動動態(tài)替換預覽內(nèi)容中的文件。它的配置和InitialPreview
選項設(shè)置類似。如:
initialPreview: [
'<img src='/images/desert.jpg' class='file-preview-image' alt='Desert' title='Desert'>'
]
-
initialPreviewConfig
: 數(shù)組。用于標識InitialPreview
項(作為InitialPreview
的一部分設(shè)置)中每個文件標記的屬性的配置。您將始終在此數(shù)組中發(fā)送一行,因為在異步模式下上傳時,您將始終收到一個文件。如果設(shè)置了此屬性,則在上傳成功后,插件將自動動態(tài)替換預覽內(nèi)容中的文件。此配置與InitialPreviewConfig選項設(shè)置類似。例如:
initialPreviewConfig: [
{
caption: 'desert.jpg',
width: '120px',
url: 'http://localhost/avatar/delete', // server delete action
key: 100,
extra: {id: 100}
}
]
-
initialPreviewThumbTags
: 數(shù)組。對應(yīng)于在每個初始預覽縮略圖中替換標記的對象數(shù)組。通過InitialPreview設(shè)置的初始預覽縮略圖將讀取此配置以替換標記。
// change thumbnail footer template
// set initial preview template tags
initialPreviewThumbTags:[
{
'{CUSTOM_TAG_NEW}': ' ',
'{CUSTOM_TAG_INIT}': '<span class=\'custom-css\'>CUSTOM MARKUP</span>'
}
]
-
append
: 布爾值。
如果在初始化的時候已經(jīng)設(shè)置了initialPreview
,是否將內(nèi)容追加到initialPreview
.若不設(shè)置,默認為true
, 如果設(shè)置為false
.插件將覆蓋initialPreview
中的內(nèi)容
- 服務(wù)器必須返回一個 JSON,否則上傳將會失敗。即使你沒有遇到任何錯誤,也應(yīng)該從服務(wù)端返回一個空對象
- 要捕獲并顯示驗證錯誤信息,返回的json數(shù)據(jù)中必須包含
error
屬性。其值是要展示的HTML 標記。可以按照上面的提示設(shè)置 - 在服務(wù)器返回的JSON中,可以發(fā)送額外的
key
或數(shù)據(jù),以便使用fileuploaded
等事件處理高級情況下的鍵或者數(shù)據(jù)
同步上傳
這種模式下,uploadAsync
被設(shè)置為 false
.這會把數(shù)據(jù)以數(shù)據(jù)對象的形式觸發(fā)一次從客戶端到服務(wù)器的批量上傳。即時在這種模式下,依然可以通過設(shè)置 maxFileCount
屬性來控制一次上傳的最大文件數(shù)。但是,在同步模式的時候,上傳進度是總體進度。預覽區(qū)中每個縮略圖的進度沒有完全驗證和更新。但是,該插件為您提供了一種識別每個文件面臨的上傳錯誤的方法。
-
服務(wù)器端接收數(shù)據(jù)
在uploadUrl
中設(shè)置的服務(wù)器方法接受從插件傳入的如下數(shù)據(jù)- 文件數(shù)據(jù): 數(shù)據(jù)以非常類似于表單
input="file"
的形式傳給服務(wù)器,例如在PHP中,你可以通過$_FILES['input-name']
來讀取數(shù)據(jù),input-name
是input
標簽的name
屬性值。類似于前面異步模式,如果不設(shè)置name
屬性,name
值默認為file_data
. 除了設(shè)置multiple
為true
之外,你必須設(shè)置像此網(wǎng)站建議的數(shù)組格式設(shè)置你的input
的name
.如果沒有將input
的name
設(shè)為數(shù)組格式,你只會接收到服務(wù)器返回的第一個文件。在PHP中,可通過$_FILES['input-name']
接收到文件數(shù)據(jù),該文件數(shù)據(jù)是一個文件對象的數(shù)組。 - 額外數(shù)據(jù):插件可發(fā)送額外數(shù)據(jù)給服務(wù)器方法。可通過設(shè)置
uploadExtraData
為一個鍵值對形式的關(guān)聯(lián)數(shù)組對象。所以,如果你設(shè)置了uploadExtraData={id:'kv-1'}
, 那么在 PHP 中,可通過\$_POST['id']
讀取到額外數(shù)據(jù)中的id
.
- 文件數(shù)據(jù): 數(shù)據(jù)以非常類似于表單
服務(wù)器端發(fā)送數(shù)據(jù)
在同步模式下,uploadUrl
必須以JSON編碼的對象的形式發(fā)送數(shù)據(jù)。例如,服務(wù)器可以返回如下JSON對象:
// example JSON response from server
{
error: 'An error exception message if applicable',
errorkeys: [], // array of thumbnail keys/identifiers that have errored out (set via key property in initialPreviewConfig
initialPreview: [
], // initial preview configuration
initialPreviewConfig: [
// initial preview configuration if you directly want initial preview to be displayed with server upload data
],
initialPreviewThumbTags: [
// initial preview thumbnail tags configuration that will be replaced dynamically while rendering
],
append: true // whether to append content to the initial preview (or set false to overwrite)
}