首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >response::download什么也不做

response::download什么也不做
EN

Stack Overflow用户
提问于 2014-05-24 00:13:34
回答 2查看 744关注 0票数 0

在公用文件夹之外下载文件时遇到问题。以下是场景:

这些文件不能从任何地方访问,只能通过此应用程序访问,并且这些下载必须通过访问控制。因此,如果用户没有登录并且没有权限,则无法下载该文件。

我有一个使用get变量定义的路由。此ID进入控制器,控制器调用以下方法:

代码语言:javascript
复制
public static function downloadFile($id){
        $file = FileManager::find($id);

        //PDF file is stored under app/storage/files/
        $download= app_path().substr($file->location,6);///home/coursesupport/public_html/app/storage/files/fom01/7-2/activities-and-demos.pdf
        $fileName = substr($download,strrpos($download,'/')+1);//activities-and-demos.pdf
        $mime = mime_content_type($download);//application/pdf
        $headers = array(
            'Content-Type: '.$mime,
            "Content-Description" => "File Transfer",
            "Content-Disposition" => "attachment; filename=" . $fileName
        );
        return Response::download($download, $fileName, $headers);
     }

问题是它什么也不做,只是打开一个空白页。我是不是遗漏了什么?哦,对了,上面提到的路线的链接打开了一个空白标签。

我很感谢你的帮助。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-05-24 00:17:08

它应该只通过这样做来工作:

代码语言:javascript
复制
public static function downloadFile($id)
{
    $file = FileManager::find($id);

    $download= app_path().substr($file->location,6);

    $fileName = substr($download,strrpos($download,'/')+1);

    return Response::download($download, $fileName);
 }
票数 0
EN

Stack Overflow用户

发布于 2014-05-24 02:28:23

确保您的路由确实返回了返回的响应。例如:

代码语言:javascript
复制
Route::get('download', function()
{
    return DownloadHandler::downloadFile(1);
});

如果路由中没有returnIlluminateResponse将不会执行任何操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23833967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档