案例一:小程序的圖片處理
$file = request()->file('uploadimg'); //接收圖片
//建立圖片存放位置
$upload_dir = ROOT_PATH . 'public/upload/images/';
if (!file_exists($upload_dir)) {
mkdir($upload_dir, 0755, true);
}
if ($file) {
// 移動到框架應用根目錄/public/uploads/ 目錄下
$info = $file->rule('date')->move($upload_dir);
if ($info) {
//獲取文件名
$image_name = $info->getSaveName();
$fileurl = '/upload/images/'. $image_name;
return $fileurl;
}
}else{
echo "錯誤";
}
案例二:base64圖片處理方法
class Image extends Base
{
public function addimage($file = 'images')
{
$img_url = input('avatar') ? input('avatar') : "";
if ($img_url) {
//若是是http格式的不須要處理直接返回
if (substr($img_url, 0, 4) == 'http') {
$src = $img_url;
return $src;
exit;
} else {
//處理圖片
$image_arr = explode(',', $img_url);
$img_data = $image_arr[1];
$img = str_replace(' ', '+', $img_data);
$fileData = base64_decode($img);
$image_name = uniqid() . '.png'; //返回13位字符串
$upload_dir = ENV::get('root_path') . 'public/upload/' . $file . '/';
if (!file_exists($upload_dir)) {
mkdir($upload_dir, 0755, true);
}
$filedir = $upload_dir . '/' . $image_name;
$src = config('website') . '/upload/' . $file . '/' . $image_name;
$status = file_put_contents($filedir, $fileData);
if ($status) {
return json(['status' => 1, 'data'=>$src,'msg' => '操做成功']);
exit;
} else {
echo "0";exit;
}
}
} else {
return json(['status' => 0,'data'=>'', 'msg' => '請選擇正確的圖片格式!']);
}
}
}
案例三:視頻轉mp4格式的處理
$video_url = input('video'); //商品視頻
$uid = input('uid'); //用戶身份id
if($video_url){
$video_arr = explode( ',', $video_url );
$video_data = $video_arr[1];
$video = str_replace( ' ', '+', $video_data );
$fileData = base64_decode( $video );
//設置文件保存位置,若文件夾不存在 則建立文件夾
$video_name = $uid.time() . '.mp4';
$upload_dir = ENV::get('root_path') . 'public/upload/product_video/';
if ( ! file_exists( $upload_dir ) ) {
mkdir( $upload_dir, 0755, true );
}
//保存地址
$filedir = $upload_dir . '/' . $video_name;
//視頻連接
$fileurl = config( 'website' ) . '/upload/product_video/'. $video_name;
//保存到服務器
$status = file_put_contents( $filedir, $fileData );
//確認是否保存到服務器
if($status){
//設置視頻縮略圖名字
$tmp_name = uniqid();
//執行linux ffmpeg命令 $fileurl 爲視頻可訪問連接 最後一個參數是圖片服務器保存路徑
$linux = "ffmpeg -i $filedir -r 1 -f image2 /www/wwwroot/qmh/public/upload/video_img/".$tmp_name.'.jpg';
exec($linux); //沒有執行
//定義視頻縮略圖連接 返回視頻連接和縮略圖連接
$url = config( 'website' ) . '/upload/video_img/' . $tmp_name.'.jpg';
$url = $linux;
// return json(['video_url'=>$fileurl,'img_url'=>$url]); return json(['status' => 1,'data'=>['video_url'=>$fileurl,'img_url'=>$url],'msg' => '視頻上傳成功'],200); }else{ return json(['status' =>0,'data'=>'','msg' => '視頻上傳失敗'],200); } }