HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/demo-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);
    }
}