qq分分彩app|qq分分彩开奖记录官网

ThinkPHP示例:圖片上傳

瀏覽:216729 最后更新:2019-03-10 14:51 分類:示例 關鍵字: 圖片上傳 示例
ThinkPHP示例之圖片上傳,包括圖片上傳、數據庫保存、縮略圖生成以及圖片水印功能演示。
首先需要下載框架核心,然后把示例解壓到Web根目錄下面,并修改入口文件中的框架入口文件的位置。
導入示例目錄下面的data.sql文件到你的數據庫,或者執行SQL:CREATE TABLE IF NOT EXISTS `think_photo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(200) NOT NULL,
  `create_time` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
修改App/Conf/config.php 中的數據庫配置信息,訪問http://localhost/file/就會顯示:

選擇一個圖片上傳成功后,頁面會出現:

生成的大圖縮略圖右下角帶有水印圖片。
示例中上傳操作的關鍵方法是IndexAction類的_upload方法,關鍵代碼如下:import("@.ORG.UploadFile");
//導入上傳類
$upload = new UploadFile();
//設置上傳文件大小
$upload->maxSize = 3292200;
//設置上傳文件類型
$upload->allowExts = explode(',', 'jpg,gif,png,jpeg');
//設置附件上傳目錄
$upload->savePath = './Uploads/';
//設置需要生成縮略圖,僅對圖像文件有效
$upload->thumb = true;
// 設置引用圖片類庫包路徑
$upload->imageClassPath = '@.ORG.Image';
//設置需要生成縮略圖的文件后綴
$upload->thumbPrefix = 'm_,s_';  //生產2張縮略圖
//設置縮略圖最大寬度
$upload->thumbMaxWidth = '400,100';
//設置縮略圖最大高度
$upload->thumbMaxHeight = '400,100';
//設置上傳文件規則
$upload->saveRule = 'uniqid';
//刪除原圖
$upload->thumbRemoveOrigin = true;
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'], APP_PATH.'Tpl/Public/Images/logo.png');
    $_POST['image'] = $uploadList[0]['savename'];
}
由于獨立演示的方便,示例中的文件上傳類和圖片類放置于項目類庫目錄下面的ORG目錄,實際應用中,這兩個類庫應該在擴展目錄中,根據實際情況調整import方法即可。
在輸出圖片的時候,為了方便調整,我們定義了模板輸出替換:'TMPL_PARSE_STRING' =>array(
    '/Uploads'=>.'/Uploads',
),
所以,我們只需要在模板文件中寫上輸出的時候會自動把/Uploads替換成.'/Uploads',也就是示例目錄下面的Uploads目錄。
更多關于文件上傳的操作可以參考在線手冊的文件上傳
評論( 相關
后面還有條評論,點擊查看>>
qq分分彩app