thinkphp5多圖上傳
⑴ 請問你有Thinkphp下使用Bootstrap File Input多文件上傳的案例嗎
現在我們開始使用插件
(1)首先引入文件
<!--css文件-->
<link href="__PUBLIC__/css/fileinput.css" media="all" rel="stylesheet" type="text/css" />
<link href="__PUBLIC__/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
<!--js文件-->
<script src="__PUBLIC__/js/jQuery.min.js" type="text/javaScript"></script>
<script src="__PUBLIC__/js/bootstrap.min.js?v=3.3.6"></script>
<script src="__PUBLIC__/js/plugins/fileinput.js" type="text/javascript"></script>
<script src="__PUBLIC__/js/fileinput.min.js" type="text/javascript"></script>
(2)初始化控制項
<input id="file" name="file_data[]" type="file" multiple data-preview-file-type="any" data-show-caption="true">
data-preview-file-type="any" :設置之後可以上傳多個文件
name="file_data[]" :因為要上傳多個文件所以要用數組
(3)js初始化控制項
$("#file").fileinput({
uploadUrl: "{:U('Admin/Img/imgupload2')}",// 上傳路徑
uploadAsync: false,//是否非同步傳輸
maxFileCount: 5//最大文件上傳數量
}).on('filebatchpreupload', function(event, data, id, index) {
}).on('filebatchuploadsuccess', function(event, data) {//上傳成功從伺服器端返回的數據(即保存的文件名稱)
for(var i=0;i<data.response.length;i++){
alert(data.response[i].flag);
}
});
(4)thinkphp對應的方法
public function imgupload2(){
$upload = new \Think\Upload();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設置附件上傳大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型
$upload->rootPath = './Public/Uploads/';// 設置附件上傳根目錄
$upload->savePath = ''; // 設置附件上傳(子)目錄
$info = $upload->upload(array($_FILES['file_data'])); // 上傳文件
$i=0;
if(!$info) {// 上傳錯誤提示錯誤信息
$a[$i]['flag']="no";
$this->ajaxReturn($a,'JSON');
}else{// 上傳成功 獲取上傳文件信息
foreach($info as $file){
$a[$i]['flag']=$file['savepath'].$file['savename'];
$i++;
}
}
$this->ajaxReturn($a,'JSON');
}
⑵ thinkphp上傳多個圖片,只能上傳一個圖片和保存一個數據,什麼原因
吧你的表結構 截圖看下 不太明白你的第一句
你的那個upload函數不行
thinkphp 自帶函數 會遍歷所有上傳
你每次調用 他都遍歷以便 所以你得到的永遠是上傳最後的一個
隨便不明白你的第一句話的意思 但是建議你這樣做
先上傳所有到一個緩存文件夾里
然後移動文件 再存儲最後的地址
⑶ 關於thinkphp圖片上傳問題
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type='file' name='file'>
<input type='submit' value='提交'>
</form>
//引入UploadFile類
import('ORG.Net.UploadFile');
//實例化UploadFile類
$upload = new UploadFile();
//設置文件大小
$upload -> maxSize = 3292200;
//設置文件保存規則唯一
$upload->saveRule = 'uniqid';
//設置上傳文件的格式
$upload -> allowExts = array('jpg','png','jpeg');
//保存路徑
$upload->savePath ='./Public/Uploads/';
//設置需要生成縮略圖,僅對圖像文件有效
$upload->thumb = true;
//設置需要生成縮略圖的文件前綴
$upload->thumbPrefix = 'm_'; //生產縮略圖也可以根據需要生成1張或多張,2張:'m_,s_'
//設置縮略圖最大寬度
$upload->thumbMaxWidth = '150';//2張的不同設置:'150,200'
//設置縮略圖最大高度
$upload->thumbMaxHeight = '200';
//刪除原圖
$upload->thumbRemoveOrigin = true;
//上傳失敗返回錯誤信息
if(!$upload->upload()){
$this->error($upload->getErrorMsg());
}else{
$this->success('上傳成功');
//獲取上傳文件的信息
$inf= $upload->getUploadFileInfo();
}
⑷ thinkphp 多圖上傳,如何把圖片路徑保存到資料庫
關於上傳文件:
推薦使用插件Uploadify!
使用方法:http://www.uploadify.com/documentation/
下載地址:http://www.uploadify.com/download/
關於多圖上傳:
在客戶端定義一個js變數,用於緩存每次非同步上傳圖片路徑;
最後提交表達數據的時候就把這些路徑集合保存到資料庫即可!
⑸ ThinkPHP中圖片最多一次上傳20張,怎麼上傳更多圖片
$User->fenxiang_fm = 'Uploads/'.$info[0]["savename"]; // 這里的$info[0]["savename"]的下標[0]表示上傳的第1個圖片按順序,記住是下標
$User->fenxiang_sc = 'Uploads/'.$info[1]["savename"]; // 這里的$info[1]["savename"]的下標[1]表示上傳的第2個圖片按順序,記住是下標
function upload(){
import("ORG.Net.UploadFile");
$upload = new UploadFile();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設置附件上傳大小
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型
$upload->saveRule = time;//這里的時間是根據上傳的圖片的多少來自動改變圖片的名稱的(並且時間都不同,所以上傳的圖片的名稱就不會相同)
⑹ thinkPHP3.2.3文件上傳類多張圖片上傳怎麼只有第一張圖片被上傳
可以遍歷傳過來的FILES數組,然後用循環調用UPLOAD類
public function upload(){
$upload = new \Think\Upload();// 實例化上傳類
$upload->maxSize = 2000000 ;// 設置附件上傳大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類
$upload->rootPath = ''./Uploads/';
$upload->savePath = date('Y').'/'.date('m').'/'.date('d').'/';
$upload->subName = array('date', 'H');
$upload->saveName = md5(uniqid());
$info = $upload->upload();
if(!$info) { // 上傳錯誤提示
$this->error($upload->getError());
}else{ // 上傳成功
return $info;
//$this->success('上傳成功!');
}
}
//調用
foreach($_FILES["banner_index"]["size"] as $key=>$val){
if($val>0){
$info=$this->upload(); //判斷上傳文件大小大於0,調用upload
foreach($info as $v){
echo $v["savepath"].$v["savename"]; }
}
}
⑺ 使用thinkphp做一個上傳圖片,並且要將圖片直接保存到資料庫里。感覺現在好沒有頭緒,不知道如何下手。
圖片直接保存到資料庫里?圖片應該是保存在文件夾裡面的吧,然後把圖片在文件夾的路徑保存在資料庫里,這樣才對吧?
⑻ thinkphp的框架 怎麼能實現圖片上傳功能和寫入資料庫,form 這樣定義之後 post獲取不到img_url值
思路是可以的,那提交數據後image可以獲取嗎?如果可以,那肯定是填寫鏈接的input有問題,而且你下面的圖有兩個圖片和鏈接,說明你是點了"點擊添加多個圖片"那個操作,那個操作之後新建的html一樣?如果一樣就會有兩個'img_url'和'image'input標簽,你應該用'img_url[]' 和 'image[]',大概想到這些