Thinkphp框架圖片上傳例項
阿新 • • 發佈:2018-12-04
【原文轉載自:https://www.cnblogs.com/guoyachao/p/6282861.html】
【原文轉載自:https://www.cnblogs.com/guoyachao/p/6282861.html】
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <title>測試頁面</title> <link rel="stylesheet" href="__PUBLIC__/Uploadify/uploadify.css"> <js file='__PUBLIC__/Uploadify/jquery-1.9.1.min.js'/> <js file='__PUBLIC__/Uploadify/jquery.uploadify.min.js'/> </head> <body> <p>1.自帶上傳類</p> <div class="file_holder"> <form action="__URL__/upload" enctype="multipart/form-data" method="post" > <input type="file" name="photo" /> <input type="submit" value="提交" > </form> </div> <br> <p>2.uploadify外掛</p> <div> <img id="img" src="http://www.thinkphp.cn/Public/new/img/header_logo.png" width="130" height="130" border="0" /> <input id="file_upload" name="file_upload" type="file" multiple="true" value="" /> </div> <p>圖片的輸出</p> <div> <volist name="res" id="vo"> <img src="__ROOT__/Uploads/{$vo.goods_img}" alt="" heigh="130" width="130"> </volist> </div> </body> <script type="text/javascript"> //上傳外掛 $(function() { $('#file_upload').uploadify({ 'swf' : '__PUBLIC__/uploadify/uploadify.swf',//進度動畫 'uploader' : '{:U("Index/uploadify")}', 'width' : 120, //上傳按鈕寬度 'height' : 30, //上傳按鈕高度 //'buttonText' : '上傳頭像',//提示 'buttonImage' : '__PUBLIC__/Uploadify/browse-btn.png', //上傳按鈕背景圖地址 經測試火狐未安裝flash圖片顯示錯誤 'fileTypeDesc' : 'Image File', //選擇檔案提示文字 'fileTypeExts' : '*.jpeg; *.jpg; *.png; *.gif', //允許選擇的檔案型別 'onUploadSuccess' : function(file, data, response) { $('#img').attr('src','__ROOT__/Uploads/'+ data); }, }); }); </script> </html>
控制器程式碼 <?php /** * 日 期:2017-1-13 * 版 本:1.0.0 * 功能說明:圖片上傳控制器演示。 * **/ namespace Home\Controller; use Think\Controller; class IndexController extends Controller{ public function index(){ $this->display(); } //自帶上傳類 public function upload(){ $upload = new \Think\Upload();// 例項化上傳類 $upload->maxSize = 3145728 ;// 設定附件上傳大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg','pdf');// 設定附件上傳型別 $upload->rootPath = './Uploads/'; // 設定附件上傳根目錄 $upload->savePath = ''; // 設定附件上傳(子)目錄 // 上傳檔案 $info = $upload->upload(); //print_r($info); if(!$info) {// 上傳錯誤提示錯誤資訊 $this->error($upload->getError()); }else{// 上傳成功 $this->success('上傳成功!'); foreach($info as $file){ $bigimg = $file['savepath'].$file['savename']; } } $model = M('img'); // 取得成功上傳的檔案資訊 $info = $upload->upload(); // 儲存當前資料物件 $data['goods_img'] = $bigimg; $model->add($data); } //外掛影象上傳 public function uploadify(){ if (!empty($_FILES)) { //圖片上傳設定 $config = array( 'maxSize' => 3145728, 'savePath' => '', 'saveName' => array('uniqid',''), 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => true, 'subName' => array('date','Ymd'), ); $upload = new \Think\Upload($config);// 例項化上傳類 $images = $upload->upload(); //判斷是否有圖 if($images){ $info=$images['Filedata']['savepath'].$images['Filedata']['savename']; //返回檔案地址和名給JS作回撥用 echo $info; }else{ $this->error($upload->getError());//獲取失敗資訊 } } $model = M('img'); // 儲存當前資料物件 $data['goods_img'] = $info; $model->add($data); } ?>
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <title>測試頁面</title> <link rel="stylesheet" href="__PUBLIC__/Uploadify/uploadify.css"> <js file='__PUBLIC__/Uploadify/jquery-1.9.1.min.js'/> <js file='__PUBLIC__/Uploadify/jquery.uploadify.min.js'/> </head> <body> <p>1.自帶上傳類</p> <div class="file_holder"> <form action="__URL__/upload" enctype="multipart/form-data" method="post" > <input type="file" name="photo" /> <input type="submit" value="提交" > </form> </div> <br> <p>2.uploadify外掛</p> <div> <img id="img" src="http://www.thinkphp.cn/Public/new/img/header_logo.png" width="130" height="130" border="0" /> <input id="file_upload" name="file_upload" type="file" multiple="true" value="" /> </div> <p>圖片的輸出</p> <div> <volist name="res" id="vo"> <img src="__ROOT__/Uploads/{$vo.goods_img}" alt="" heigh="130" width="130"> </volist> </div> </body> <script type="text/javascript"> //上傳外掛 $(function() { $('#file_upload').uploadify({ 'swf' : '__PUBLIC__/uploadify/uploadify.swf',//進度動畫 'uploader' : '{:U("Index/uploadify")}', 'width' : 120, //上傳按鈕寬度 'height' : 30, //上傳按鈕高度 //'buttonText' : '上傳頭像',//提示 'buttonImage' : '__PUBLIC__/Uploadify/browse-btn.png', //上傳按鈕背景圖地址 經測試火狐未安裝flash圖片顯示錯誤 'fileTypeDesc' : 'Image File', //選擇檔案提示文字 'fileTypeExts' : '*.jpeg; *.jpg; *.png; *.gif', //允許選擇的檔案型別 'onUploadSuccess' : function(file, data, response) { $('#img').attr('src','__ROOT__/Uploads/'+ data); }, }); }); </script> </html>
控制器程式碼 <?php /** * 日 期:2017-1-13 * 版 本:1.0.0 * 功能說明:圖片上傳控制器演示。 * **/ namespace Home\Controller; use Think\Controller; class IndexController extends Controller{ public function index(){ $this->display(); } //自帶上傳類 public function upload(){ $upload = new \Think\Upload();// 例項化上傳類 $upload->maxSize = 3145728 ;// 設定附件上傳大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg','pdf');// 設定附件上傳型別 $upload->rootPath = './Uploads/'; // 設定附件上傳根目錄 $upload->savePath = ''; // 設定附件上傳(子)目錄 // 上傳檔案 $info = $upload->upload(); //print_r($info); if(!$info) {// 上傳錯誤提示錯誤資訊 $this->error($upload->getError()); }else{// 上傳成功 $this->success('上傳成功!'); foreach($info as $file){ $bigimg = $file['savepath'].$file['savename']; } } $model = M('img'); // 取得成功上傳的檔案資訊 $info = $upload->upload(); // 儲存當前資料物件 $data['goods_img'] = $bigimg; $model->add($data); } //外掛影象上傳 public function uploadify(){ if (!empty($_FILES)) { //圖片上傳設定 $config = array( 'maxSize' => 3145728, 'savePath' => '', 'saveName' => array('uniqid',''), 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => true, 'subName' => array('date','Ymd'), ); $upload = new \Think\Upload($config);// 例項化上傳類 $images = $upload->upload(); //判斷是否有圖 if($images){ $info=$images['Filedata']['savepath'].$images['Filedata']['savename']; //返回檔案地址和名給JS作回撥用 echo $info; }else{ $this->error($upload->getError());//獲取失敗資訊 } } $model = M('img'); // 儲存當前資料物件 $data['goods_img'] = $info; $model->add($data); } ?>