File: /var/www/vhost/disk-apps/dev-telemedicina.teky.com.co/app/Http/Controllers/UploadController.php
<?php
namespace Telemedicina\Http\Controllers;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Telemedicina\FileAttach;
use Telemedicina\ClinicDocument;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Telemedicina\AudioClinicDocument;
class UploadController extends Controller
{
public function anexos(Request $request){
if(!$request->clinic_document_id){
return response(__('messages.attachments.tag_1'))->setStatusCode(400);
}
if(!$request->hasFile('file')){
return response(__('messages.attachments.tag_2'))->setStatusCode(400);
}
if(!$request->filename){
return response(__('messages.attachments.tag_2'))->setStatusCode(400);
}
$num_ram = rand(1, 999);
$extension = $request->file('file')->getClientOriginalExtension();
$filenametostore = $num_ram.time().'.'.$extension;
Storage::disk('s3')->put(env('S3_ATTACHMENTS_PATH').$request->document . '/' .$filenametostore, fopen($request->file('file'), 'r+'));
$obj= new FileAttach;
$obj->filename = $request->filename;
$obj->description=$request->description;
$obj->path = env('S3_ATTACHMENTS_PATH').$request->document ."/". $filenametostore;
$obj->mimetype = $request->mimetype;
$obj->user_id = Auth::user()->id;
$obj->pos = $request->pos ? $request->pos : null;
$obj->clinic_document_id = $request->clinic_document_id;
$obj->save();
return response()->json(["status"=> 200, "message" => __('messages.attachments.tag_3'), 'obj' => $obj->toArray()]);
}
public function getFile($id){
$file = FileAttach::find($id);
$url = Storage::disk('s3')->temporaryUrl(
$file->path, Carbon::now()->addSeconds(5)
);
return redirect($url);
}
public function deleteFile(Request $request){
$id = $request->id;
$obj = FileAttach::find($id);
$path = $obj->path;
$hc = ClinicDocument::find($obj->clinic_document_id);
if($hc->state_id <= 4){
Storage::disk('s3')->delete(env('S3_ATTACHMENTS_PATH').$path);
$obj->delete();
return response()->json(["status"=> 200, "message" => __('messages.attachments.tag_4')])->setStatusCode(200);
}else{
return response()->json(["status"=> 500, "message" => __('messages.attachments.tag_5')])->setStatusCode(500);
}
}
public function saveAudioClinicDocument(Request $request){
if(!$request->clinic_document_id){
return response(__('messages.attachments.tag_1'))->setStatusCode(400);
}
if(!$request->hasFile('file')){
return response(__('messages.attachments.tag_2'))->setStatusCode(400);
}
$num_ram = rand(1, 999);
$extension = '.mp3';
$filenametostore = $num_ram.time() . $extension;
Storage::disk('s3')->put(env('S3_AUDIOS_PATH').$request->document . '/' .$filenametostore, fopen($request->file('file'), 'r+'));
$obj= new AudioClinicDocument;
$obj->path = env('S3_AUDIOS_PATH').$request->document ."/". $filenametostore;
$obj->mimetype = $request->mimetype;
$obj->clinic_document_id = $request->clinic_document_id;
$obj->save();
return response()->json(["status"=> 200, "message" => __('messages.attachments.tag_3'), 'obj' => $obj->toArray()]);
}
public function getAudioClinicDocument($id){
$file = AudioClinicDocument::find($id);
$url = Storage::disk('s3')->temporaryUrl(
$file->path, Carbon::now()->addSeconds(5)
);
return redirect($url);
}
}