//公共上傳
private function _upload($width, $height, $path, $prefix) {
import('ORG.Net.UploadFile');
$upload = new UploadFile(); // 實例化上傳類
$upload->maxSize = C('UPLOAD_SIZE'); // 設置附件上傳大小
$upload->savePath = './Uploads/' . $path; // 設置附件上傳目錄
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg'); // 設置附件上傳類型
$upload->saveRule = 'time';
$upload->uploadReplace = true; //是否存在同名文件是否覆蓋
$upload->thumb = true; //是否對上傳文件進行縮略圖處理
$upload->thumbMaxWidth = $width; //縮略圖處理寬度
$upload->thumbMaxHeight = $height; //縮略圖處理高度
$upload->thumbPrefix = $prefix; //縮略圖前綴
$upload->thumbPath = './Uploads/' . $path . date('Ymd', time()) . '/'; //縮略圖保存路徑
$upload->thumbRemoveOrigin = true; //上傳圖片後刪除原圖片
$upload->autoSub = true; //是否使用子目錄保存圖片
$upload->subType = 'date'; //子目錄保存規則
$upload->dateFormat = 'Ymd'; //子目錄保存規則爲date時時間格式
if (!$upload->upload()) {// 上傳錯誤提示錯誤信息
echo json_encode(array('msg' => $this->error($upload->getErrorMsg()), 'status' => 0));
} else {// 上傳成功 獲取上傳文件信息
$info = $upload->getUploadFileInfo();
$picname = $info[0]['savename'];
$picname = explode('/', $picname);
$picname = $picname[0] . '/' . $prefix . $picname[1];
echo json_encode(array('status' => 1, 'msg' => $picname));
}
}
然後你比如生成300*300的的圖片你就定義一個方法
例如: //商品縮略圖上傳
public function uploadThumb() {
return $this->_upload('230,160', '230,121', 'thumb/', 'shop_,thumb_');
}
然後400*400的就又寫一個方法:
//商品縮略圖上傳
public function uploadThumb() {
return $this->_upload('400,200', '400,200', 'thumb/', 'shop_,thumb_');
}
protected function _upload($fileToUpload, $width, $height, $path, $prefix) {
$fileElementName=$_FILES[$fileToUpload];
$upload = new \Think\Upload();// 實例化上傳類
$upload->maxSize = '3145728'; //C('UPLOAD_SIZE'); // 設置附件上傳大小
$upload->savePath = './Uploads/' . $path; // 設置附件上傳目錄
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg'); // 設置附件上傳類型
$upload->saveRule = 'time';
$upload->uploadReplace = true; //是否存在同名文件是否覆蓋
$upload->thumb = true; //是否對上傳文件進行縮略圖處理
$upload->thumbMaxWidth = $width; //縮略圖處理寬度
$upload->thumbMaxHeight = $height; //縮略圖處理高度
$upload->thumbPrefix = $prefix; //縮略圖前綴
$upload->thumbPath = './Uploads/' . $path . date('Y/Y-m-d', time()) . '/'; //縮略圖保存路徑
$upload->thumbRemoveOrigin = true; //上傳圖片後刪除原圖片
$upload->autoSub = true; //是否使用子目錄保存圖片
$upload->subType = 'date'; //子目錄保存規則
$upload->dateFormat = 'Ymd'; //子目錄保存規則爲date時時間格式
$info = $upload->uploadOne($fileElementName);
if (!$info) {// 上傳錯誤提示錯誤信息
$error = $this->error($upload->getError());
} else {// 上傳成功 獲取上傳文件信息
$info = $upload->getUploadFileInfo();
$msg = $info['savepath'].$info['savename'];
}
}