Bla*_*arl 11 download laravel-4
我在创建下载链接以从Laravel Storage文件夹通过移动应用程序下载文件时遇到问题.
我做了类似$link = Response::Download(storage_path()./file/example.png)但无济于事的事情.
我将文件移动到公共文件夹并使用http://domain.com/file/example.png,asset('file/example.png')但无济于事.
我正进入(状态 404 NOT FOUND ERROR
我该如何解决这个问题?
Lat*_*san 24
请查看Laravel Helpers文档:http://laravel.com/docs/4.2/helpers
如果您想要链接到您的资产,您可以这样做:
$download_link = link_to_asset('file/example.png');
Run Code Online (Sandbox Code Playgroud)
编辑
如果上面的方法不适合你,那么你可以在app/routes.php中实现一个相当简单的下载路由,如下所示:
请注意,此示例假定您的文件位于app/storage/file / location中
// Download Route
Route::get('download/{filename}', function($filename)
{
// Check if file exists in app/storage/file folder
$file_path = storage_path() .'/file/'. $filename;
if (file_exists($file_path))
{
// Send Download
return Response::download($file_path, $filename, [
'Content-Length: '. filesize($file_path)
]);
}
else
{
// Error
exit('Requested file does not exist on our server!');
}
})
->where('filename', '[A-Za-z0-9\-\_\.]+');
Run Code Online (Sandbox Code Playgroud)
用法:http://your-domain.com/download/example.png
这将在:app/storage/file/example.png中查找文件(如果存在,则将文件发送到浏览器/客户端,否则将显示错误消息).
PS '[A-Za-z0-9\-\_\.]+此正则表达式,确保了用户只能请求与包含名称的文件 A-Z或a-z(字母), 0-9(数字),-或_或.(符号).其他一切都被丢弃/忽略.这是一项安全/保障措施....
更新Laravel 5.0及更高版本的答案:
<a href={{ asset('file/thing.png') }}>Thing</a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35570 次 |
| 最近记录: |