Я пытаюсь загрузить изображение с моей формой в моем проекте Laravel
. У меня есть Обрезка изображения, который сохраняет изображение как data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/..
Кроппер отправляет строку JSON
, которая содержит строку файла в кодировке base64
, мне нужно проанализировать строку JSON
для объекта, а затем извлечь строку base64
и превратить ее в объект файла .
Я использую Image Intervention
для процесса загрузки
Функция контроллера
public function store(Request $request)
{
// save post in db
$post = new Post;
$post->title = $request->title;
$post->body = $request->body;
$post->user_id = auth()->id();
if ($request->hasFile('featimage')) {
$image = $request->file('featimage');
$filename = time() . '.' . $image->getCLientOriginalExtension();
$image = trim($image);
$image = str_replace('data:image/png;base64,', '', $image);
$image = str_replace('data:image/jpg;base64,', '', $image);
$image = str_replace('data:image/jpeg;base64,', '', $image);
$image = str_replace('data:image/gif;base64,', '', $image);
$image = str_replace(' ', '+', $image);
$imagedata = base64_decode($image);
//Set image whole path here
$location = public_path('images/uploads/' . $filename);
Image::make($image)->save($location);
$post->image = $filename;
}
$post->save();
$post->tags()->sync($request->tags, false);
Session::flash('success', 'The blog post was saved successfully!');
return redirect()->route('posts.show', $post->id);
}
View
<form class="form-horizontal" action="{{route('posts.store')}}" method="POST" enctype="multipart/form-data">{{ csrf_field() }}
<fieldset class="form-group">
<label for="featimage">Upload Image</label>
<input type="file" class="form-control slim" data-ratio="4:3" name="featimage">
<label class="col-md-2 col-form-label">Post Body</label>
<textarea type="textarea" class="form-control" rows="10" name="body"></textarea>
</fieldset>
<button class="btn btn-primary btn-block" name="submit">Save</button>
<button class="btn btn-danger btn-block" name="submit">Cancel</button>
</form>
Я читал другие посты, подобные этой, и мне явно что-то не хватает, но я просто не знаю, что.