You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.9 KiB
68 lines
1.9 KiB
<?php
|
|
|
|
namespace App\Controller;
|
|
|
|
use App\Request\AttachmentRequest;
|
|
use App\Request\ImageBase64Request;
|
|
use App\Service\AttachmentServiceInterface;
|
|
use Hyperf\Di\Annotation\Inject;
|
|
use App\Request\ImageRequest;
|
|
use League\Flysystem\Filesystem;
|
|
|
|
class AttachmentController extends BaseController
|
|
{
|
|
/**
|
|
* @Inject
|
|
* @var AttachmentServiceInterface
|
|
*/
|
|
protected $attachmentService;
|
|
|
|
/**
|
|
* 单文件表单上传
|
|
* @param AttachmentRequest $request
|
|
* @param Filesystem $filesystem
|
|
* @return \Psr\Http\Message\ResponseInterface
|
|
*/
|
|
public function upload(AttachmentRequest $request, Filesystem $filesystem)
|
|
{
|
|
$file = $this->request->file('upload');
|
|
$type = $this->request->input('type', '');
|
|
|
|
$fileName = $this->attachmentService->formUpload($file, $type, $filesystem, 'file');
|
|
|
|
return $this->success(['file_path' => $fileName]);
|
|
}
|
|
|
|
/**
|
|
* 单图表单上传
|
|
* @param ImageRequest $request
|
|
* @param Filesystem $filesystem
|
|
* @return \Psr\Http\Message\ResponseInterface
|
|
*/
|
|
public function uploadImage(ImageRequest $request, Filesystem $filesystem)
|
|
{
|
|
$file = $this->request->file('upload');
|
|
$type = $this->request->input('type', '');
|
|
|
|
$fileName = $this->attachmentService->formUpload($file, $type, $filesystem);
|
|
|
|
return $this->success(['file_path' => $fileName]);
|
|
}
|
|
|
|
/**
|
|
* 单图base64上传
|
|
* @param ImageBase64Request $request
|
|
* @param Filesystem $filesystem
|
|
* @return \Psr\Http\Message\ResponseInterface
|
|
*/
|
|
public function uploadImageByBase64(ImageBase64Request $request, Filesystem $filesystem)
|
|
{
|
|
$base64Code = $this->request->input('upload');
|
|
$type = $this->request->input('type', '');
|
|
|
|
$fileName = $this->attachmentService->base64Upload($base64Code, $type, $filesystem);
|
|
|
|
return $this->success(['file_path' => $fileName]);
|
|
}
|
|
|
|
}
|