ThinkPHP 整合 uploadifive實作檔上傳
Thinkphp整合uploadifive进行动态参数传递,内容列表按钮实现一键上传文件
兜兜转转又回到TP了。。有大几年都在用CI写项目,最近回到TP来,项目中有一个功能花了点时间,特分享出来。
就是,后台内容列表里每一条记录都放一个按钮,可以快速进行文件上传(不需要点击编辑进入详情再上传),就想到了以前用过的uploadify,但由于办公室多数同事都用MAC,则uploadifive更合适。
废话不多说,上代码:
第一步,加载jquery.js/uploadifive.js/uploadifive.css
第二步,构建HTML列表:<table><br>
<tr><td>商品名称1</td><td><input data-id="1" type="file" class="uploadifive" /></td></tr><br>
<tr><td>商品名称2</td><td><input data-id="2" type="file" class="uploadifive" /></td></tr><br>
</table><br>
<div id="proccess"></div>
說明:本段程式碼模仿後台商品列表,實際模板應為循環。每一行都顯示一個檔案上傳按鈕,由於單一頁面有多個上傳,故使用類別名稱.uploadifive(不能使用ID名稱),把內容ID寫在file控制項上備用;
第三步,在模板上寫JS程式碼:<script>$(function(){<br />
$('.uploadifive').uploadifive({<br />
'auto' : true, //使用自動上傳<br />
'width' : '80px', //按鈕寬度<br />
'height' : '20px', //按鈕高度<br />
'uploadScript' : '/Index/uploadifive', //上傳方式<br />
'fileObjName' : 'mp3',<br />
'buttonText' : '上傳」,<br />
'queueID' : 'proccess', //顯示佇列的ID<br />
'fileType' : '*.mp3',<br />
'multi' : false,<br />
'fileSizeLimit' : '5MB',<br />
'uploadLimit' : 1,<br />
'removeTimeout' : 0,<br />
'queueSizeLimit' : 1,<br />
'removeCompleted' : true, //已在上傳完成後自動隱藏清單<br />
//'formData' : {'pid' : 1111}, //傳遞靜態參數有用,且傳送變數無用<br />
'onAddQueueItem' : function(file){<br />
this.data('uploadifive').settings.formData = {'id':$(this).data('id')}; //傳遞動態參數方法<br />
},<br />
'onUploadComplete' : function(file, data){<br />
var obj = JSON.parse(data);<br />
if (obj.status == 'success'){<br />
layer.msg('已成功使用!』,{icon:1,time:1500},function(){<br />
window.location.reload();<br />
});<br />
} else {<br />
layer.msg("上傳失敗!",{icon:2});<br />
}<br />
},<br />
onCancel : function(file){<br />
$data = $(this).data('uploadifive'),<br />
settings = $data.settings;<br />
settings.uploadLimit++;<br />
layer.msg(file.name + " 已上傳與~",{icon:2});<br />
},<br />
});<br />
});<br /></script>
說明:本段程式碼是重點,因為在取得內容ID的時候花了些時間,度娘了國內所有資料發現均無法動態傳參,都說得亂七八糟的,最後翻牆去了google一分鐘不到就解決了~uploadifive裡動態傳遞參數可以在onAddQueueItem裡面定義,可以用jquery語法,可以定義多個參數。
第四步:在控制器裡面創建uploadifive方法,上傳程式碼可以直接用ThinkPHP提供的,上傳到本地、伺服器、或雲端儲存都是很方便的,上傳成功後返回相關狀態給模板JS的onUploadComplete方法即可。由於實際專案中實作邏輯不一樣,這裡的程式碼就不貼出來了,可以自行建立。
第五步:沒有了~
總結:一、本例程用到了uploadifive HTML5上傳插件,該版本是收費的,因版權問題我就不發出來了,大家自行度娘之~實在找不到的私信我,用郵箱發送;
二、本程式用的是自動上傳,所以取得內容ID是關鍵,如果是表單手動上傳,則簡單一些;
三、本例也使用了layer插件,需要用的也需要下載並在頭部加載進來;
好吧,我承認本文重點要說的就是uploadifive動態傳遞參數,希望跟我一樣遇到相同問題的人都能搜到這篇文章,以少走彎路浪費時間,有問題留言,我會關注的~ ~

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

《Go語言程式設計實例:Web開發中的程式碼範例》隨著網路的快速發展,Web開發已成為各行業中不可或缺的一部分。作為一門功能強大且效能優越的程式語言,Go語言在Web開發中越來越受到開發者們的青睞。本文將透過具體的程式碼範例,介紹如何利用Go語言進行Web開發,讓讀者更能理解並運用Go語言來建立自己的Web應用。 1.簡單的HTTP伺服器首先,讓我們從一個

了解Python程式設計的入門程式碼範例Python是一種簡單易學,功能強大的程式語言。對於初學者來說,了解Python程式設計的入門級程式碼範例是非常重要的。本文將為您提供一些具體的程式碼範例,幫助您快速入門。列印HelloWorldprint("HelloWorld")這是Python中最簡單的程式碼範例。 print()函數用於將指定的內容輸出

Java冒泡排序最簡單的程式碼範例冒泡排序是一種常見的排序演算法,它的基本想法是透過相鄰元素的比較和交換來將待排序序列逐步調整為有序序列。以下是一個簡單的Java程式碼範例,示範如何實作冒泡排序:publicclassBubbleSort{publicstaticvoidbubbleSort(int[]arr){int

PHP變數儲存程式運行期間的值,對於建立動態且互動的WEB應用程式至關重要。本文將深入探討php變量,並透過10個真實的範例展示它們的實際應用。 1.儲存使用者輸入$username=$_POST["username"];$passWord=$_POST["password"];此範例從表單提交中提取使用者名稱和密碼,並將其儲存在變數中以供進一步處理。 2.設定配置值$database_host="localhost";$database_username="username";$database_pa

華為雲端邊緣運算對接指南:Java程式碼範例快速實現介面隨著物聯網技術的快速發展和邊緣運算的興起,越來越多的企業開始關注邊緣運算的應用。華為雲端提供了邊緣運算服務,為企業提供了高可靠的運算資源和便利的開發環境,使得邊緣運算應用更容易實現。本文將介紹如何透過Java程式碼快速實現華為雲端邊緣運算的介面。首先,我們需要準備好開發環境。確保你已經安裝了Java開發工具包(

如何使用PHP編寫庫存管理系統中的庫存分倉管理功能碼庫存管理是許多企業中不可或缺的一部分。對於擁有多個倉庫的企業來說,庫存分倉管理功能尤其重要。透過合理管理和追蹤庫存,企業可以實現不同倉庫之間的庫存調撥,優化營運成本,改善協同效率。本文將介紹如何使用PHP編寫庫存分倉管理功能的程式碼,並為您提供相關的程式碼範例。一、建立資料庫在開始編寫庫存分倉管理功能的程式碼之

標題:從入門到精通:Go語言中常用資料結構的程式碼實作資料結構在程式設計中起著至關重要的作用,它是程式設計的基礎。在Go語言中,有許多常用的資料結構,掌握這些資料結構的實作方式對於成為優秀的程式設計師至關重要。本文將介紹Go語言中常用的資料結構,並給出對應的程式碼範例,幫助讀者從入門到精通這些資料結構。 1.數組(Array)數組是一種基本的資料結構,是一組相同類型

Java選擇排序法程式碼編寫指南及範例選擇排序是一種簡單直觀的排序演算法,其想法是每次從未排序的元素中選擇最小(或最大)的元素進行交換,直到所有元素排序完成。本文將提供選擇排序的程式碼編寫指南,並附上具體的Java範例程式碼。演算法原理選擇排序的基本原理是將待排序數組分為已排序和未排序兩部分,每次從未排序部分選擇最小(或最大)的元素,將其放到已排序部分的末尾。重複上述
