<?php namespace App\Admin\Controllers; use App\Handlers\AliOss; use OSS\Core\OssException; use Dcat\Admin\Traits\HasUploadedFile; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; use Intervention\Image\Facades\Image; use App\Models\Adapay; class UploadController { use HasUploadedFile; /** * 删除OSS私有桶资源文件 */ public function deleteOssFile() { $ossPath = request()->post('key') ?? ''; $aliOss = new AliOss(); $res = $aliOss->delete($ossPath); return $res ? $this->responseDeleted() : $this->responseDeleteFailed('文件删除失败'); } /** * 删除OSS公有桶资源文件 */ public function deletePublicOssFile() { $ossPath = request()->post('key') ?? ''; $aliOss = new AliOss(); if (strstr($ossPath, 'aliyuncs') !== false) { $res = $aliOss->delete($ossPath); //, 'OSS_BUCKET' return $res ? $this->responseDeleted() : $this->responseDeleteFailed('文件删除失败'); } else { return $this->deleteFileAndResponse(); } } public function merchantUpload() { $disk = $this->disk(); // 判断是否是删除文件请求 if ($this->isDeleteRequest()) { // 删除文件并响应 return $this->deleteFileAndResponse(); } // 获取上传的文件 $file = $this->file(); //获取文件扩展名 $ext = $file->getClientOriginalExtension(); $img = Image::make($file->getRealPath()) ->resize(640, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->encode($ext, 90); $dir = '/merchant/' . date("Ymd"); $newName = md5(uniqid()) . '.' . $ext; $path = "{$dir}/$newName"; $result = $disk->put($path, $img); return $result ? $this->responseUploaded($path, $disk->url($path)) : $this->responseErrorMessage('文件上传失败'); } public function userUpload() { $disk = $this->disk(); // 判断是否是删除文件请求 if ($this->isDeleteRequest()) { // 删除文件并响应 return $this->deleteFileAndResponse(); } // 获取上传的文件 $file = $this->file(); //获取文件扩展名 $ext = $file->getClientOriginalExtension(); $img = Image::make($file->getRealPath()) ->resize(640, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->encode($ext, 90); $dir = '/user'; $newName = md5(uniqid()) . '.' . $ext; $path = "{$dir}/$newName"; $result = $disk->put($path, $img); return $result ? $this->responseUploaded($path, $disk->url($path)) : $this->responseErrorMessage('文件上传失败'); } /** * 上传资源库图片 */ public function goodsUpload() { $aliOss = new AliOss(); // 获取上传的文件 $file = $this->file(); $ext = $file->getClientOriginalExtension(); Image::make($file->getRealPath()) ->resize(640, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->encode('jpg', 90); $fileName = md5(uniqid()) . '.' . $ext; $date = date('Ymd'); $ossFilePath = 'goods/' . $date . '/' . $fileName; //获取文件的绝对路径 $path = $file->getRealPath(); $res = $aliOss->upload($ossFilePath, $path, 'OSS_PUBLIC_BUCKET'); return $res ? $this->responseUploaded(env('OSS_PUBLIC_IMAGE_URL') . $ossFilePath, '') : $this->responseErrorMessage('文件上传失败'); } //商品规格图 public function uploadSkuImage(Request $request) { $aliOss = new AliOss(); if ($request->hasFile('file')) { $file = $request->file('file'); $disk = $this->disk(); //获取文件扩展名 $ext = $file->getClientOriginalExtension(); $fileName = md5(uniqid()) . '.' . $ext; $date = date('Ymd'); $path = $file->getRealPath(); $ossFilePath = 'goods/' . $date . '/' . $fileName; $res = $aliOss->upload($ossFilePath, $path, 'OSS_PUBLIC_BUCKET'); return ['url' => env('OSS_PUBLIC_IMAGE_URL') . $ossFilePath]; } } //轮播图 public function carouselUpload() { $aliOss = new AliOss(); // 获取上传的文件 $file = $this->file(); Image::make($file->getRealPath()) ->resize(640, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->encode('jpg', 90); $fileName = md5(uniqid()) . '.jpg'; $date = date('Ymd'); $ossFilePath = 'carousel/' . $date . '/' . $fileName; //获取文件的绝对路径 $path = $file->getRealPath(); $res = $aliOss->upload($ossFilePath, $path, 'OSS_PUBLIC_BUCKET'); return $res ? $this->responseUploaded(env('OSS_PUBLIC_IMAGE_URL') . $ossFilePath, '') : $this->responseErrorMessage('文件上传失败'); } //汇付图片(先调用汇付,再调用alioss) public function huifuUpload() { //汇付类型 // $file_type = [ // 'social_credit_code_id' => '01', // 'legal_cert_id_front_id' => '02', // 'legal_cert_id_back_id' => '03', // ]; // $upload_column = $_POST['upload_column'] ?? ''; $aliOss = new AliOss(); // 获取上传的文件 $file = $this->file(); $ext = $file->getClientOriginalExtension(); // Image::make($file->getRealPath()) // ->resize(640, null, function ($constraint) { // $constraint->aspectRatio(); // $constraint->upsize(); // })->encode('jpg', 90); $fileName = uniqid() . '.' . $ext; $date = date('Ymd'); $ossFilePath = 'huifu/' . $date . '/' . $fileName; //获取文件的绝对路径 $path = $file->getRealPath(); $res = $aliOss->upload($ossFilePath, $path, 'OSS_PUBLIC_BUCKET'); return $res ? $this->responseUploaded(env('OSS_PUBLIC_IMAGE_URL') . $ossFilePath, '') : $this->responseErrorMessage('文件上传失败'); } public function carouselUpload2() { $disk = $this->disk(); // 判断是否是删除文件请求 if ($this->isDeleteRequest()) { // 删除文件并响应 return $this->deleteFileAndResponse(); } // 获取上传的文件 $file = $this->file(); //获取文件扩展名 $ext = $file->getClientOriginalExtension(); $img = Image::make($file->getRealPath()) ->resize(640, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->encode($ext, 90); $dir = '/carousel'; $newName = md5(uniqid()) . '.' . $ext; $path = "{$dir}/$newName"; $result = $disk->put($path, $img); return $result ? $this->responseUploaded($path, $disk->url($path)) : $this->responseErrorMessage('文件上传失败'); } public function articlelUpload() { $disk = $this->disk(); // 判断是否是删除文件请求 if ($this->isDeleteRequest()) { // 删除文件并响应 return $this->deleteFileAndResponse(); } // 获取上传的文件 $file = $this->file(); //获取文件扩展名 $ext = $file->getClientOriginalExtension(); $img = Image::make($file->getRealPath()) ->resize(640, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->encode($ext, 90); $dir = '/article'; $newName = md5(uniqid()) . '.' . $ext; $path = "{$dir}/$newName"; $result = $disk->put($path, $img); return $result ? $this->responseUploaded($path, $disk->url($path)) : $this->responseErrorMessage('文件上传失败'); } }