| 구름 | 여러 파일 업로드 | Base64 사진 업로드 | 서버 파일 업로드 |
|---|---|---|---|
| ? 프라이빗 클라우드 | ✅ | - | ✅ |
| ? 알리바바 클라우드 | ✅ | ✅ | ✅ |
| ? Tencent Cloud | ✅ | ✅ | ✅ |
| ? qiniu 클라우드 | ✅ | ✅ | ✅ |
| ? 아마존 (S3) | ✅ | ✅ | ✅ |
composer require tinywan/storage $ res = Tinywan Storage Storage:: uploadFile ();
var_dump ( json_encode ( $ res ));
v1.0.0이후,TinywanStorageStorage::config()초기화 후이 메소드를 호출 할 필요가 없으며 자동으로 초기화됩니다. 기본 구성은 구성 파일app.phpdefault구성 구성 업로드 어댑터입니다.
[
{
"key" : " webman " ,
"origin_name" : "常用编程软件和工具.xlsx " ,
"save_name" : " 03414c9bdaf7a38148742c87b96b8167.xlsx " ,
"save_path" : " runtime/storage/03414c9bdaf7a38148742c87b96b8167.xlsx " ,
"save_path" : " /var/www/webman-admin/public/storage/03414c9bdaf7a38148742c87b96b8167.xlsx " ,
"url" : " /storage/fd2d472da56c71a6da0a5251f5e1b586.png " ,
"uniqid " : " 03414c9bdaf7a38148742c87b96b8167 " ,
"size" : 15050 ,
"mime_type" : " application/vnd.openxmlformats-officedocument.spreadsheetml.sheet " ,
"extension" : " xlsx "
}
...
]
StorageAdapterException예외를 던지는 실패
| 전지 | 설명하다 | 예제 값 |
|---|---|---|
| 열쇠 | 파일 키를 업로드하십시오 | 웹맨 |
| Origin_name | 원본 파일 이름 | 일반적인 프로그래밍 소프트웨어 및 도구 .xlsx |
| save_name | 파일 이름을 저장합니다 | 03414C9BDAF7A38148742C87B96B8167.XLSX |
| save_path | 파일 저장 경로 (상대) | /var/www/webman-admin/runtime/storage/03414c9bdaf7a38148742c87b96b8167.xlsx |
| URL | URL 액세스 경로 | /Storage/03414C9BDAF7A38148742C87B96B8167.XLSX |
| 고유 한 | uniqid | 03414C9BDAF7A38148742C87B96B8167 |
| 크기 | 파일 크기 | 15050 (바이트) |
| mime_type | 파일 유형 | 응용 프로그램/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| 확대 | 파일 확장 | XLSX |
기본적으로 로컬 서버에 업로드됩니다. 현재 날짜가 하위 디렉토리로서 파일이있는 파일 및 파일 스트림의 SHA1로 인코딩 된 파일 이름이 runtime/storage 디렉토리에서 생성됩니다. 예를 들어 위에서 생성 된 파일 이름은 다음과 같습니다.
runtime/storage/fd2d472da56c71a6da0a5251f5e1b586.png
업로드 된 파일에 직접 액세스하거나 다운로드하려면 public 스토리지 방법을 사용할 수 있습니다.
config/plugin/tinywan/storage/app.php 구성 파일에서 업로드 루트 디렉토리를 구성 할 수 있습니다.
' local ' => [
' adapter ' => Tinywan Storage Adapter LocalAdapter::class,
' root ' => public_path () . ' /storage ' ,
],브라우저 액세스 : http://127.0.0.1:8787/storage/fd2d472da56c71a6da0a5251f5e1b586.png
파일 크기, 파일 유형 및 접미사를 포함하여 확인 클래스를 사용하여 업로드 된 파일 확인 지원
| 전지 | 설명하다 | 예제 값 |
|---|---|---|
| Single_Limit | 단일 파일의 크기 제한, 기본 200m | 1024 * 1024 * 200 |
| Total_limit Total_limit | 모든 파일 크기 제한, 기본 200m | 1024 * 1024 * 200 |
| 숫자 | 파일 번호 제한, 기본값 10 | 10 |
| 포함하다 | 허용 파일 유형 목록 | [ 'xlsx', 'pdf'] |
| 들어오지 못하게 하다 | 무단 파일 유형 목록 | [ 'png', 'jpg'] |
composer require aliyuncs/oss-sdk-phpcomposer require qcloud/cos-sdk-v5composer require qiniu/php-sdkcomposer require league/flysystem-aws-s3-v3시나리오 사용 : 프론트 엔드 (AVA, 캔버스 등)의 직접 스크린 샷 Base64 데이터 스트림의 그림이 클라우드에 직접 업로드됩니다.
{
"extension" : " png " ,
"base64" : " data:image/jpeg;base64,/9j/4AAQSkxxxxxxxxxxxxZJRgABvtyQBIr/MPTPTP/2Q== "
} public function upload ( Request $ request )
{
$ base64 = $ request -> post ( ' base64 ' );
$ response = Tinywan Storage Storage:: disk ( Tinywan Storage Storage:: MODE_OSS , false )-> uploadBase64 ( $ base64 , ' png ' );
var_dump ( $ response );
}
v1.0.0이후,TinywanStorageStorage::config()초기화 후이 메소드를 호출 할 필요가 없으며 자동으로 초기화됩니다. 기본 구성은 구성 파일app.phpdefault구성 구성 업로드 어댑터입니다.
{
"save_path" : " storage/20220402213639624851671439e.png " ,
"url" : " http://webman.oss.tinywan.com/storage/20220402213639624851671439e.png " ,
"unique_id" : " 20220402213639624851671439e " ,
"size" : 11802 ,
"extension" : " png "
}사용 시나리오 : 서버 내보내기 파일은 클라우드 스토리지에 업로드하거나 제로 타임 파일 스토리지로 다운로드해야합니다.
$ serverFile = runtime_path () . DIRECTORY_SEPARATOR . ' storage/webman.png ' ;
$ res = Tinywan Storage Storage:: disk ( Tinywan Storage Storage:: MODE_OSS , false )-> uploadServerFile ( $ serverFile );
v1.0.0이후,TinywanStorageStorage::config()초기화 후이 메소드를 호출 할 필요가 없으며 자동으로 초기화됩니다. 기본 구성은 구성 파일app.phpdefault구성 구성 업로드 어댑터입니다.
{
"origin_name" : " /var/www/webman-admin/runtime/storage/webman.png " ,
"save_path" : " storage/6edf04d7c26f020cf5e46e6457620220402213414.png " ,
"url" : " http://webman.oss.tinywan.com/storage/6ed9ffd54d0df57620220402213414.png " ,
"unique_id" : " 6edf04d7c26f020cf5e46e6403213414 " ,
"size" : 3505604 ,
"extension" : " png "
} vendor/bin/phpstan analyse src
vendor/bin/php-cs-fixer fix src