无法从 public 文件夹 laravel 打印图像
Trouble printing out image from public folder laravel
我想展示我刚刚上传的图片,并且只展示给上传它的人。比如用户table里面有jack,Emily和John,如果jack上传文件图片会直接显示在他的下面,但是我不知道怎么办?
这是现在的样子:
控制器:(我如何存储图像)
public function store1(Request $request){
$this->validate($request, [
'file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
if ($request->hasFile('file')) {
$image = $request->file('file');
$name = $image->getClientOriginalName();
$size = $image->getClientSize();
$destinationPath = public_path('/images');
$image->move($destinationPath, $name);
$userImage = new UserImage;
$userImage->name = $name;
$userImage->size = $size;
//dd($userImage);
$userImage->save();
}
view.blade.php
@foreach ($data as $object)
<b>Name: </b>{{ $object->name }}<br><br>
@endforeach
我看到有人在他们的 blade.php 中使用这个,但我不知道 $model 是什么:
<img src="{{ asset('public/images/' . $model->image) }}">
上传。blade.php(这是我的上传页面,用户将在其中上传他们的图片)
{{ csrf_field() }}
<div class="form-group">
<label for="imageInput" class="control-label col-sm-3">Upload Image</label>
<div class="col-sm-9">
<input type="file" name="file">
</div>
</div>
<div class="form-group">
<div class="col-md-6-offset-2">
<input type="submit" class="btn btn-primary" value="Save">
</div>
</div>
</form>
有很多方法可以做到。
您可以使用 Eloquent
或使用 Laravel 的 query builder
。
在你的控制器中你应该得到用户上传的所有图片。
Query builder
方法:
//don't forget the namespace
`use DB;`
//in your function write this.
$images = DB::table('user_images')
->join('users', 'users.id', '=', 'user_images.user_id')
->where('users.id', '=', $id)
->get();
//use dd($images) to verify that the variable $images has data
//send $images in your view
在您看来,编写一个 foreach 循环如下:
@foreach($images as $image)
<img src="{{ asset('public/images/' . $image->name ) }}">
@endforeach
我想展示我刚刚上传的图片,并且只展示给上传它的人。比如用户table里面有jack,Emily和John,如果jack上传文件图片会直接显示在他的下面,但是我不知道怎么办?
这是现在的样子:
控制器:(我如何存储图像)
public function store1(Request $request){
$this->validate($request, [
'file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
if ($request->hasFile('file')) {
$image = $request->file('file');
$name = $image->getClientOriginalName();
$size = $image->getClientSize();
$destinationPath = public_path('/images');
$image->move($destinationPath, $name);
$userImage = new UserImage;
$userImage->name = $name;
$userImage->size = $size;
//dd($userImage);
$userImage->save();
}
view.blade.php
@foreach ($data as $object)
<b>Name: </b>{{ $object->name }}<br><br>
@endforeach
我看到有人在他们的 blade.php 中使用这个,但我不知道 $model 是什么:
<img src="{{ asset('public/images/' . $model->image) }}">
上传。blade.php(这是我的上传页面,用户将在其中上传他们的图片)
{{ csrf_field() }}
<div class="form-group">
<label for="imageInput" class="control-label col-sm-3">Upload Image</label>
<div class="col-sm-9">
<input type="file" name="file">
</div>
</div>
<div class="form-group">
<div class="col-md-6-offset-2">
<input type="submit" class="btn btn-primary" value="Save">
</div>
</div>
</form>
有很多方法可以做到。
您可以使用 Eloquent
或使用 Laravel 的 query builder
。
在你的控制器中你应该得到用户上传的所有图片。
Query builder
方法:
//don't forget the namespace
`use DB;`
//in your function write this.
$images = DB::table('user_images')
->join('users', 'users.id', '=', 'user_images.user_id')
->where('users.id', '=', $id)
->get();
//use dd($images) to verify that the variable $images has data
//send $images in your view
在您看来,编写一个 foreach 循环如下:
@foreach($images as $image)
<img src="{{ asset('public/images/' . $image->name ) }}">
@endforeach