php - 如何从 URL 下载文件而不显示 Laravel 中的完整路径?

标签 php laravel-5

下载链接:-

 <a  href='"+ downloadlink + '/attachment-download/' + $('#employee_ID').val()+'/'+ res[i].file_name +"'>    

路线:-

Route::get('/attachment-download/{id}/{filename}', array(
 'uses' => 'AttachmentsController@getDownloadAttachments'
));

附件 Controller :-

public function getDownloadAttachments($id,$filename){
    $file="./img/user-icon.png";

    $resource = \Employee::WhereCompany()->findOrfail($id);

    $path = $this->attachmentsList($resource);

    foreach($path as $index => $attachment){
        if ($filename == $attachment['file_name']) {
        $filePath = $attachment['url'];
        }
    }
    //return \Response::download($file);
    return \Response::download($filePath);
}


File URL Output:-
https://zetpayroll.s3.ap-south-1.amazonaws.com/employees/81/Screenshot%20from%202017-04-26%2015%3A07%3A45.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI57OFN3HPCBPQZIQ%2F20170612%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20170612T144818Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=59ecc4d11b7ed71bd336531bd7f4ab7c84da6b7424878d6487679c97a8c52ca7

在此,如果尝试使用静态路径下载文件,例如

 $file="./img/user-icon.png";  
 return \Response::download($file);

下载正常。但无法从 AWS URL 下载文件,请帮助我如何使用 URL 自动下载文件。或者如何从 Laravel 或 PHP 中的 URL 获取路径。 谢谢。

最佳答案

使用上述功能正在下载所有文件。但是,在尝试打开文件时,文本、pdf、...文件打开(.text、.csv、.pdf..)没有问题,但图像却没有。

$fileContent = file_get_contents($filePath);

$response = response($fileContent, 200, [
   'Content-Type' => 'application/json',
   'Content-Disposition' => 'attachment; filename="'.$filename.'"',
]);

return $response;

关于php - 如何从 URL 下载文件而不显示 Laravel 中的完整路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44514696/

相关文章:

php - 最小年龄验证 laravel

php - 如何在Laravel 5.8中扩展或制作自定义PasswordBroker sendResetLink()方法?

PHP - 如何使用 ANSI 编码保存文本文件?

php - 如何将 MySQLi Query 的结果从一个 PHP 页面传递到另一个页面?

javascript - 字符串连接运行时性能

php - 有没有办法绑定(bind)变量? PHP 5

laravel - Xampp 本地主机不工作

laravel - 处理 php (Laravel API) 和 javascript (AngularJS) 之间的日期时间

Laravel:file_put_contents()无法打开流: session 文件夹的权限被拒绝

php - 关于 Apache 如何处理文件上传的任何文档?