當前位置:首頁 » 文件管理 » thinkphp上傳文件類

thinkphp上傳文件類

發布時間: 2025-08-04 16:06:34

① thinkphp中怎麼處理上傳文件

$n = $m->add();
if ($n){
$str = "添加成功";
}else {
$str = "添加失敗";
}
$this->assign("str",$str);
$this->display("upload");
}

// 文件上傳
protected function _upload() {
import("@.ORG.UploadFile");
$upload = new UploadFile();
//設置上傳文件大小
$upload->maxSize = 3292200;
//設置上傳文件類型
$upload->allowExts = explode(',', 'jpg,gif,png,jpeg,pjpeg,bmp,doc,rar,txt');
//設置附件上傳目錄
$upload->savePath = './Public/upload/';
//設置上傳文件規則
$upload->saveRule = uniqid;
if (!$upload->upload()) {
//捕獲上傳異常
$this->error($upload->getErrorMsg());
} else {
//取得成功上傳的文件信息
$uploadList = $upload->getUploadFileInfo();
//import("@.ORG.Image");
//給m_縮略圖添加水印, Image::water('原文件名','水印圖片地址')
/*Image::water($uploadList[0]['savepath'].'m_'.$uploadList[0]['savename'], '/ThinkPHP_2.1_full_with_extend/Examples/File/Tpl/default/Public/Images/logo2.png'); */
return $uploadList[0]['savename'];
}

② thinkphp單個輸入框怎麼實現多個文件上傳

Thinkphp手冊中對於多文件上傳描述的很清楚:如果需要使用多個文件,只需要修改表單,把
復制代碼 代碼如下:
<input type='file' name='photo'>
改為
復制代碼 代碼如下:
<li><input type='file' name='photo1'></li>
<li><input type='file' name='photo2'></li>
<li><input type='file' name='photo3'></li>
或者
復制代碼 代碼如下:
<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>
暫且自己的上傳表單域為兩個,一個上傳圖片,一個上傳視頻。欄位名為image、video。
html代碼如下
復制代碼 代碼如下:
圖片:<input type="file" name="image[]">
視頻:<input type="file" name="video[]">
model代碼:
復制代碼 代碼如下:
protected $info= '';
protected $_auto = array(
array('image','upload',3,callback),//自動完成方法
array('video','videoupload',3,callback), //自動完成方法
);//自動填充上傳圖片生成縮略圖
protected function upload(){
$var = $_FILES['image']['name'];
import('ORG.Net.UploadFile');
$upload = new UploadFile();
$upload->saveRule = time;
$upload->allowExts = array('jpg', 'gif', 'png', 'zip','flv');
$upload->thumb = true;
//視頻路徑。。。只支持flv後綴,
$upload->videopath = './Public/upload/Video/';
$upload->savePath = './Public/upload/images/';
$upload->thumbPrefix = '250_115_,150_110_,213_156_';
$upload->thumbMaxWidth='250,150,213';
$upload->thumbMaxHeight='115,110,156';
if(!in_array('',$var) || !in_array('',$_FILES['video']['name'])){
if(!$upload->upload()) {
echo $upload->getErrorMsg();die;
}else{
$this->info = $upload->getUploadFileInfo();
if(!in_array('',$var) && !in_array('',$_FILES['video']['name'])){
return $this->info[1]['savename'];
}elseif(!in_array('',$var)){
return $this->info[0]['savename'];
}else{
return false;
}
}
}else{
return flase;
}
}
//上傳視頻
protected function videoupload(){
if(!in_array('',$var) && !in_array('',$_FILES['video']['name'])){
return $this->info[0]['savename'];
}elseif(!in_array('',$_FILES['video']['name'])){
return $this->info[1]['savename'];
}else{
return false;
}
}
文章最後我來分析一下多文件上傳原理吧,先來看看html代碼
復制代碼 代碼如下:
<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>
這種就是把表單變數定義為數組,在php中數組特殊變數它可以存儲多個不定長的內容,所以我們就可以自定多文件上傳框了,那麼在php處理時我們要如何操作,下面看例子。
復制代碼 代碼如下:
protected $_auto = array(
array('image','upload',3,callback),//自動完成方法
array('video','videoupload',3,callback), //自動完成方法
);//自動填充上傳圖片生成縮略圖
這個是告訴thinkphp是數組變數了,並不需要像原生態的php中來判斷遍歷數組長度再一個個上傳的代碼了,因為了thinkphp己經做好了。

③ ThinkPHP3.2.3 上傳圖片到ftp,同時生成縮略圖。

ThinkPHP上傳文件類:

$upload = new ThinkUpload($config);// 實例化上傳類

使用這個。

如要處理圖片大小。需要另外調用圖像處理:

裁剪圖片

$image=newThinkImage();
$image->open('./1.jpg');
//將圖片裁剪為400x400並保存為corp.jpg
$image->crop(400,400)->save('./crop.jpg');
居中裁剪
$image=newThinkImage();
$image->open('./1.jpg');
//生成一個居中裁剪為150*150的縮略圖並保存為thumb.jpg
$image->thumb(150,150,ThinkImage::IMAGE_THUMB_CENTER)->save('./thumb.jpg');

④ thinkphp多文件上傳代碼

如果需要使用多個文件,只需要修改表單,把<input type='file' name='photo'>改為:
<li><input type='file' name='photo1'></li>
<li><input type='file' name='photo2'></li>
<li><input type='file' name='photo3'></li>
或者
<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>

⑤ 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"]; }
}
}

熱點內容
編程兩大類 發布:2025-09-10 03:59:50 瀏覽:365
安卓什麼軟體可以把照片拼在一起 發布:2025-09-10 03:59:17 瀏覽:552
我的世界葯葯世界伺服器 發布:2025-09-10 03:45:27 瀏覽:677
ftp快照 發布:2025-09-10 03:34:33 瀏覽:733
二叉樹的遍歷演算法java 發布:2025-09-10 03:19:34 瀏覽:15
吉利嘉際旗艦型有哪些配置 發布:2025-09-10 03:14:49 瀏覽:513
c語言四捨五入的函數 發布:2025-09-10 03:06:23 瀏覽:737
c語言兔子 發布:2025-09-10 03:05:49 瀏覽:656
伺服器電腦有些什麼功能 發布:2025-09-10 02:58:43 瀏覽:151
安卓變成黑白了為什麼 發布:2025-09-10 02:39:39 瀏覽:469