%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/graphicd/public_html/vebto/common/Files/Response/
Upload File :
Create Path :
Current File : /home/graphicd/public_html/vebto/common/Files/Response/RemoteFileResponse.php

<?php

namespace Common\Files\Response;

use Carbon\Carbon;
use Common\Files\FileEntry;

class RemoteFileResponse implements FileResponse
{
    /**
     * @param FileEntry $entry
     * @param array $options
     * @return mixed
     */
    public function make(FileEntry $entry, $options)
    {
        if ($options['disposition'] === 'attachment') {
            $fileName = rawurlencode($entry->name);
            return $this->getTemporaryUrl($entry, $options,   [
                'ResponseContentType' => 'application/octet-stream',
                'ResponseContentDisposition' => "attachment;filename={$fileName}",
            ]);
        } else {
            if (config('common.site.use_presigned_s3_urls')) {
              return $this->getTemporaryUrl($entry, $options, [
                  'ResponseContentType' => $entry->mime,
              ]);
            } else {
                return redirect($entry->getDisk()->url($entry->getStoragePath($options['useThumbnail'])));
            }
        }
    }

    private function getTemporaryUrl(FileEntry $entry, array $entryOptions, array $urlOptions)
    {
        return redirect($entry->getDisk()->temporaryUrl(
            $entry->getStoragePath($entryOptions['useThumbnail']),
            Carbon::now()->addMinutes(5),
            $urlOptions
        ));
    }
}

Zerion Mini Shell 1.0