Php 为什么响应::下载()赢了';除了Laravel4中的PDF,你不能下载任何东西吗?

Php 为什么响应::下载()赢了';除了Laravel4中的PDF,你不能下载任何东西吗?,php,download,laravel,laravel-4,Php,Download,Laravel,Laravel 4,这是一行让我恶心的代码 return Response::download(storage_path().'/file/' . $file->id . "." . $file->file->extension); 上传文件并提供一个id,保存在该id下,例如25.pdf如果文件是pdf,则此操作正常,但不适用于任何其他文件,例如PNG。为了解决这个问题,我们将Laravel 3升级到了4 有什么想法吗 编辑: 我刚刚上传了一个测试文本文件,里面有单词test,一旦我上传了它,

这是一行让我恶心的代码

return Response::download(storage_path().'/file/' . $file->id . "." . $file->file->extension);
上传文件并提供一个id,保存在该id下,例如
25.pdf
如果文件是pdf,则此操作正常,但不适用于任何其他文件,例如PNG。为了解决这个问题,我们将Laravel 3升级到了4

有什么想法吗

编辑:
我刚刚上传了一个测试文本文件,里面有单词test,一旦我上传了它,然后下载了它,我打开了它,有3个空行和字母te!!!!!我通过sftp下载了它,文件正确地存储在服务器上,因此这是一个挑战性的下载过程

尝试将MIME包含在返回中:

$file = storage_path().'/file/' . $file->id . "." . $file->file->extension;
return Response::download($file, 200, array('content-type' => 'image/png'));

尝试在返回中包含MIME:

$file = storage_path().'/file/' . $file->id . "." . $file->file->extension;
return Response::download($file, 200, array('content-type' => 'image/png'));

我使用了这个函数而不是Laravel的任何东西。:/ (从网上其他地方偷来的)


我使用了这个函数而不是Laravel的任何东西。:/ (从网上其他地方偷来的)


有人可能会问,我怎样才能在laravel中获得文件的路径

文件路径可以通过以下方式实现:

public function getDownload(){

        $file = public_path()."/downloads/info.pdf";
        $headers = array('Content-Type: application/pdf',);
        return Response::download($file, 'info.pdf',$headers);
    }
函数将从“project/public/download”文件夹下载文件


(别忘了自己设置路由和控制器)

有人可能会问,我怎样才能获得laravel中文件的路径

文件路径可以通过以下方式实现:

public function getDownload(){

        $file = public_path()."/downloads/info.pdf";
        $headers = array('Content-Type: application/pdf',);
        return Response::download($file, 'info.pdf',$headers);
    }
函数将从“project/public/download”文件夹下载文件


(别忘了自己设置路由和控制器)

如果您使用的是Windows,请转到php.ini,然后取消注释“extension=php_fileinfo.dll”部分,然后使用以下代码:

Route::get('file/download', function()
{
    $file = public_path(). '\download\myfile.png';
    return Response::download($file);
});

如果您使用的是Windows,请转到php.ini,然后取消对“extension=php_fileinfo.dll”部分的注释,然后使用以下代码:

Route::get('file/download', function()
{
    $file = public_path(). '\download\myfile.png';
    return Response::download($file);
});

我尝试过:返回响应::下载($file,$name,array('content-type'=>'image/png');而不是我认为文件中所说的200。。。没有不同:((请参见编辑)您是否也尝试过使用200?我就是这样做的,没有问题?存储路径是否在服务器的“public_html”部分?如果是,您是否可以直接访问文件而没有问题?我希望对文件具有一定程度的安全性,这就是为什么没有public。laravel-4 API没有任何方法设置我尝试过的响应号:返回响应::下载($file,$name,array('content-type'=>'image/png'));而不是200,因为我认为这是文档中所说的……没有什么不同:((参见编辑)您是否也尝试过使用200?我就是这样做的,没有问题?存储路径是否在服务器的“public_html”部分?如果是,您可以直接访问文件而没有问题吗?我希望对文件具有一定程度的安全性,这就是为什么没有public。laravel-4 API没有任何方法设置我使用的响应号他的和它的工作没有其他做-谢谢我用这个,它的工作没有其他做-谢谢