文件上傳插件 -- fileinput

1.特性

  • 該插件可以將簡單的 <input type=file /> 轉(zhuǎn)換為高級的文件選取控件。對于不支持 JQueryJavascript 的瀏覽器,將會回滾到正常的 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ā)。當前可用的事件有 fileresetfileclearfileclearedfileloadedfileerror
  • 支持 readonlydisabledinput
  • 文件名太長超過容器寬度時,動態(tài)設(shè)置標題欄的尺寸
  • 在預覽容器中完全加載圖像后引發(fā)新的 fileimageuploaded 事件。
  • 當預覽圖超過預覽容器尺寸的時候,自動縮放預覽圖
  • 完全模板化和可擴展,允許按照開發(fā)人員的需求配置 fileinput
  • 基于各種文件預覽類型的智能預覽。內(nèi)置文件支持類型有 圖像文本HTML視頻音頻Flash對象其他
  • allowedPreviewTypes: 通過配置 allowedPreviewTypes 選項,來設(shè)置哪些文件類型可被預覽,默認為 ['image', 'html', 'text', 'video', 'audio', 'flash', 'object'],因此,默認情況下,所有文件類型都被視為要預覽的對象。例如,如果僅僅需要預覽 imagevideo 文件,可做如下設(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è)置。可以配置的布局對象有:main1main2previewcaptionmodal
  • 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 FormDataXMLHttpRequest 2 標準構(gòu)建。大多數(shù)現(xiàn)代瀏覽器都支持這個標準,但是對于不支持的瀏覽器,插件將自動降級為基于表單的正常提交。
  • 使用 HTML5FormData 添加基于 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版本開始,支持基于表單的拖放,然而,基于表單的上傳只支持像 ChromeMozilla 這樣的支持分配文件列表對象 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.cssfileinput.min.js之外,還需要導入 jquery.min.jsbootstrap.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-nameinput 標簽的 name 屬性。如果你沒有給 input 設(shè)置 name 屬性,默認的 namefile_data. 注意,多文件上傳需要設(shè)置 inputmultiple 屬性。那么在 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 值

注意
在異步模式下,您將始終在處理 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)容

\color{#09f}{特別重要的}

  • 服務(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-nameinput 標簽的 name 屬性值。類似于前面異步模式,如果不設(shè)置 name 屬性, name 值默認為 file_data. 除了設(shè)置 multipletrue之外,你必須設(shè)置像此網(wǎng)站建議的數(shù)組格式設(shè)置你的 inputname.如果沒有將 inputname 設(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.
  • 服務(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)
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,338評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,296評論 2 376

推薦閱讀更多精彩內(nèi)容