weizong song 6 years ago
parent 4cd49d03ca
commit 91411808e1

@ -207,7 +207,7 @@ class CommonController extends Controller
$upload = new Uploads();
$upload->original_name = $original_name;
$upload->folder = $request->folder ? $request->folder : "";
$upload->folder = $save_folder;
$upload->name = $name;
$upload->extension = $extension;
$upload->creator_type = get_class(Auth::guard("admin")->user());

@ -2038,96 +2038,4 @@ class OrdersController extends CommonController
return response()->json($paramedic_levels->toArray());
}
/**
* @OA\POST(
* path="/manager/upload-image",
* summary="V2-上传图片",
* description="上传图片",
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Parameter(name="folder", in="query", @OA\Schema(type="string"), required=true, description="文件存放目录:[public/manager],public表示可以公开查看的,一般用于头像等公开图片,manager是需要鉴权后查看的,一般用于身份证、资格证书等非公开图片"),
* @OA\Response(
* response="200",
* description="上传图片",
* content={
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* @OA\Property(
* property="id",
* type="integer",
* description="文件存储id"
* ),
* @OA\Property(
* property="folder",
* type="string",
* description="文件存储目录"
* ),
* @OA\Property(
* property="name",
* type="string",
* description="文件名"
* ),
* @OA\Property(
* property="public_path",
* type="string",
* description="公开访问路径,如果为null,表示不可公开访问"
* ),
* example={
* "id": "1",
* "folder": "public",
* "name": "eufgw83ascasc.jpg",
* "public_path": "/storage/eufgw83ascasc.jpg"
* }
* )
* )
* }
* )
* )
*/
public function uploadImage(Request $request)
{
try {
$file = $request->file("file");
$original_name = $file->getClientOriginalName();
$extension = last(explode(".", $original_name));
if (!in_array($extension, ["jpg", "jpeg", "gif", "png", "bmp"])) {
return response()->json([
"errorcode" => "403",
"errormsg" => "不正确的文件格式"
]);
}
$save_folder = $request->folder ? $request->folder : "manager";
if (!is_dir(Storage::path($save_folder))) {
Storage::makeDirectory($save_folder);
}
$name = uniqid() . "." . $extension;
$store_result = $file->storeAs($save_folder, $name);
$upload = new Uploads();
$upload->original_name = $original_name;
$upload->folder = $save_folder;
$upload->name = $name;
$upload->extension = $extension;
$upload->creator_type = get_class($this->manager);
$upload->creator_id = $this->manager->id;
$upload->size = Storage::size($save_folder . "/" . $name);
$upload->save();
if ($save_folder == "public") {
$upload->public_path = "/storage/" . $name;
} else {
$upload->public_path = null;
}
return response()->json($upload);
} catch (\Exception $exception) {
return response()->json([
"errorcode" => $exception->getCode(),
"errormsg" => $exception->getMessage()
]);
}
}
}

@ -0,0 +1,134 @@
<?php
namespace App\Http\Controllers\Manager;
use App\Models\Uploads;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
class PublicController extends CommonController
{
/**
* @OA\POST(
* path="/manager/upload-image",
* summary="V2-上传图片",
* description="上传图片",
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Parameter(name="folder", in="query", @OA\Schema(type="string"), required=true, description="文件存放目录:[public/manager],public表示可以公开查看的,一般用于头像等公开图片,manager是需要鉴权后查看的,一般用于身份证、资格证书等非公开图片"),
* @OA\Response(
* response="200",
* description="上传图片",
* content={
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* @OA\Property(
* property="id",
* type="integer",
* description="文件存储id"
* ),
* @OA\Property(
* property="folder",
* type="string",
* description="文件存储目录"
* ),
* @OA\Property(
* property="name",
* type="string",
* description="文件名"
* ),
* @OA\Property(
* property="public_path",
* type="string",
* description="公开访问路径,如果为null,表示不可公开访问"
* ),
* example={
* "id": "1",
* "folder": "public",
* "name": "eufgw83ascasc.jpg",
* "public_path": "/storage/eufgw83ascasc.jpg"
* }
* )
* )
* }
* )
* )
*/
public function uploadImage(Request $request)
{
try {
$file = $request->file("file");
$original_name = $file->getClientOriginalName();
$extension = last(explode(".", $original_name));
if (!in_array($extension, ["jpg", "jpeg", "gif", "png", "bmp"])) {
return response()->json([
"errorcode" => "403",
"errormsg" => "不正确的文件格式"
]);
}
$save_folder = $request->folder ? $request->folder : "manager";
if (!is_dir(Storage::path($save_folder))) {
Storage::makeDirectory($save_folder);
}
$name = uniqid() . "." . $extension;
$store_result = $file->storeAs($save_folder, $name);
$upload = new Uploads();
$upload->original_name = $original_name;
$upload->folder = $save_folder;
$upload->name = $name;
$upload->extension = $extension;
$upload->creator_type = get_class($this->manager);
$upload->creator_id = $this->manager->id;
$upload->size = Storage::size($save_folder . "/" . $name);
$upload->save();
if ($save_folder == "public") {
$upload->public_path = "/storage/" . $name;
} else {
$upload->public_path = null;
}
return response()->json($upload);
} catch (\Exception $exception) {
return response()->json([
"errorcode" => $exception->getCode(),
"errormsg" => $exception->getMessage()
]);
}
}
/**
* @OA\Get(
* path="/manager/get-attachment/{id}",
* summary="V2-获取附件,进行展示或下载",
* description="获取附件,进行展示或下载",
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Parameter(name="id", in="path", @OA\Schema(type="string"), required=true, description="id"),
* @OA\Response(
* response="200",
* description="获取附件,进行展示或下载"
* )
* )
*/
public function getAttachment($id)
{
$attachment = Uploads::find($id);
if (!$attachment) {
abort("404");
}
if (!Storage::exists($attachment->folder . "/" . $attachment->name)) {
abort("404");
}
return Storage::download($attachment->folder . "/" . $attachment->name, null, [
'Cache-Control' => 'no-cache, no-store, must-revalidate',
'Pragma' => 'no-cache',
'Expires' => '0',
], null);
}
}

@ -0,0 +1,18 @@
<?php
use Illuminate\Database\Seeder;
class FixUploadsFolder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
\App\Models\Uploads::whereNull("folder")->orWhere("folder","")->update([
"folder" => "public"
]);
}
}

@ -4,6 +4,7 @@ use Illuminate\Database\Seeder;
class UpdateParamedicStatus extends Seeder
{
/**
* Run the database seeds.
*

@ -130,6 +130,8 @@ Route::group(["namespace" => "Manager", "prefix" => "manager"], function () {
Route::group(['middleware' => ['authorize.jwt:manager']], function () {
Route::post('me', 'AuthController@me');
Route::post('update', 'AuthController@update');
Route::post('upload-image', 'PublicController@uploadImage');
Route::get('get-attachment/{id}', 'PublicController@getAttachment');
Route::post('create-paramedic', 'ParamedicController@createParamedic');
Route::post('update-paramedic/{id}', 'ParamedicController@updateParamedic');
@ -148,7 +150,7 @@ Route::group(["namespace" => "Manager", "prefix" => "manager"], function () {
Route::get('get-project-paramedic-levels/{project_id}', 'OrdersController@getProjectParamedicLevels');
Route::get('get-project-areas/{project_id}', 'OrdersController@getProjectAreas');
Route::get('get-area-beds/{area_id}', 'OrdersController@getAreaBeds');
Route::post('upload-image', 'OrdersController@uploadImage');
Route::post('create-patient', 'OrdersController@createPatient');
Route::post('create-order', 'OrdersController@createOrder');
Route::post('scan-pay/{order_id}', 'OrdersController@scanPay');

Loading…
Cancel
Save