百度編輯器Ueditor 上傳的圖片和別的文件如何上傳到 阿里OSS中
求大牛 或者做過的幫幫小弟 在這里卡了幾天了 萬謝
歡迎選擇我的課程,讓我們一起見證您的進(jìn)步~~
上傳目錄通過配置 imagePathFormat 格式的參數(shù)指定,配置位置在 php/config.json 里。詳細(xì)用法看 上傳路徑配置
window 一般情況都會有權(quán)限讀寫,在 linux 和 mac 系統(tǒng)下,需要注意運(yùn)行 php 的用戶,有沒有權(quán)限讀寫上傳目錄。
IIS 服務(wù)器掛接 PHP 的情況下,注意上傳目錄不在程序目錄下時,要設(shè)置 "啟用父路徑" 為true,才能正常訪問父目錄。
Ueditor圖片上傳
我做的時候都是先上傳到服務(wù)器。這個時候圖片存儲到/tmp 目錄,我然后直接在這個目錄對這個文件進(jìn)行常規(guī)檢測或者做一些處理什么,然后將這個文件上傳到阿里云,最后給客戶端返回可用鏈接就好了。
我的代碼 使用的laravel
/**
* 圖片上傳
* @param response @file 圖片資源
* @param string $url 上傳的圖片路徑前綴
* @param string $prefix 上傳的圖片文件名前綴
*/
public function image_upload(Request $request){
$file = $request->file('file');
if (empty($file)) {
return $this->error('請選擇需要上傳的圖片或者文件');
}
$type = $request->input('type');
$config = Config::get('upload.image.' . $type);
if (empty($config)) {
return $this->error('參數(shù)不正確', 100);
}
$path = $config['path'];
$prefix = $config['prefix'];
$path = trim($path, '/') . '/';
$prefix = trim($prefix, '.');
$tmp_file_name = $file->getPathname();
$endpoint = env('ALIOSS_ENDPOINT');
//判斷文件類型
$exif = exif_imagetype($tmp_file_name);
if ($path == '/') {
$path = '';
}
$uploaded_file_name = $path . uniqid($prefix, true) . '.' . pathinfo($file->getClientOriginalName(), PATHINFO_EXTENSION);
if ($exif != IMAGETYPE_JPEG && $exif != IMAGETYPE_PNG) {
return $this->error('選擇的文件格式不正確,文件的格式為png,jpg,jpeg');
}
//初始化OSS
try {
$ossClient = new OssClient(env('ALIYOSS_ID'), env('ALIOSS_SECRET'), $endpoint);
} catch (OssException $e) {
return $this->error('圖片上傳失敗,請稍后重試');
}
//上傳文件
try {
$bucket = env('ALIOSS_BUCKET');
$ossClient->uploadFile($bucket, $uploaded_file_name, $tmp_file_name);
$image_url = 'http://' . $bucket . '.' . $endpoint . '/' . $uploaded_file_name;
//上傳成功
// Redis::rpush('image_list', $uploaded_file_name);
// Redis::set('image_list_' . $uploaded_file_name, json_encode(['url' => $image_url, 'time' => time()]));
return $this->success(['url' => $image_url]);
} catch (OssException $e) {
return $this->error('圖片上傳失敗,請稍后重試');
}
}