我正在使用 laravel 网络应用程序将图像上传到数据表并在单击时下载该图像它工作正常((但我希望在单击时下载上传的图像),直到我将代码从 return '{!! Html::link('images/u4.png', 'Download') !!}';
更改为 return '{!! Html::link('images/.$doc->image', 'Download') !!}';
并且我收到此错误 forbidden dont have permission
我正在使用 xampp 本地主机
我的代码让你理解我被卡住的地方
index.blade.php
columns: [
// render:function(data,type,full,meta){
// return '<a href="'+data.filepath+'/'+data.fileName + '" download>Download</a>'
// },
// "targets": 0
// { data: 'rownum', orderable: false, searchable: false },
{ data: 'doc_type', name: 'doc_type' },
{ data: 'doc_number', name: 'doc_number' },
{ data: 'doc_date', name: 'doc_date'},
{ data: 'amount', name: 'amount' },
{ data: 'currency', name: 'currency' },
{ data: 'partener', name: '{{ TBL_PARTENER }}.id'},
{ data: 'image', name: 'image',render:function(data,type,full,meta){
// return '<a href="'+data.filepath+'/'+data.fileName + '" download="myImage">Download</a>'
// return '<a href="/images/.$doc->image" download >Download</a>'
return '{!! Html::link('images/.$doc->image', 'Download') !!}';
// return '{!! Html::link('images/u4.png', 'Download') !!}';
} },
//'image' => ['name' => 'image', 'data' => 'image'],
{ data: 'comments', name: 'comments' },
{ data: 'action', orderable: false, searchable: false}
],
文档控制器
public function download($file){
$file_path = public_path('images/'.$file);
return response()->download( $file_path);
}
//这段代码写在store方法中
$this->validate($request, [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:6048',
]);
$doc = new Document($request->input()) ;
if($file = $request->hasFile('image')) {
$file = $request->file('image') ;
$fileName = $file->getClientOriginalName() ;
$destinationPath = public_path().'/images/' ;
$file->move($destinationPath,$fileName);
$doc->image = $fileName ;
}
路线
Route::get('/images/{file}','DocumentsController@download');
答案 0 :(得分:1)
你生成了错误的路由兄弟。在您攻击浏览器上的 URL 的屏幕截图中,localhost/conta/public/images/$doc->image
这不是一个有效的路由,这就是 apache 抛出“禁止错误”的原因。
生成有效的网址可能会解决您的问题。