从URL下载文件而不显示laravel中的完整路径

时间:2017-06-13 07:16:18

标签: 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'
));

附件控制器: -

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获取路径。 谢谢。

1 个答案:

答案 0 :(得分:0)

Using this above function All files are downloaded. 
But while try to open those files are opened (.text, .csv, .pdf..). 
But not open images.

$fileContent = file_get_contents($filePath);

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

return $response;