Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 16.04.2017 23:06:20

Как сделать загрузку изображений без submit?

Есть view, которая содержит submit (создание статьи).
Хочу сделать загрузку изображения без еще одной кнопки submit. Можно ли сделать это без ajax? Или проще с?
Есть такой код:

public function imageUploadPost(Request $request)
    {
    	$this->validate($request, [
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);

        $imageName = time().'.'.$request->image->getClientOriginalExtension();
        $request->image->move(public_path('images'), $imageName);

    	return back()
    		->with('success','Image Uploaded successfully.')
    		->with('path',$imageName);
    }

Не в сети

#2 17.04.2017 13:36:32

Re: Как сделать загрузку изображений без submit?

а чем собственно не устраивает простой input[type=file] в форме? предпросмотр можно сделать на js

Не в сети

#3 17.04.2017 13:41:51

Re: Как сделать загрузку изображений без submit?

constb пишет:

а чем собственно не устраивает простой input[type=file] в форме? предпросмотр можно сделать на js

Проблема в том, что я сейчас использую часть кода

$this->validate($request, [
            'image' => 'required|max:2048',
        ]);

        $imageName = time().'.'.$request->image->getClientOriginalExtension();
        $request->image->move(public_path('testfolder'), $imageName);

И получаю ошибку Call to a member function getClientOriginalExtension() on string

Не в сети

#4 17.04.2017 13:59:54

Re: Как сделать загрузку изображений без submit?

я не уверен что тут правильно использовать max, для валидации размеров файлов используется size

Не в сети

#5 17.04.2017 14:05:26

Re: Как сделать загрузку изображений без submit?

constb пишет:

я не уверен что тут правильно использовать max, для валидации размеров файлов используется size

size это скорее к длине строки. Я пока вообще убрал его. Все равно та же ошибка.
В роутах же ничего не нужно дописывать для загрузки?

Не в сети

#6 17.04.2017 14:10:53

Re: Как сделать загрузку изображений без submit?

ничего. на форме должен быть enctype="multipart/form-data"

Не в сети

#7 17.04.2017 14:16:51

Re: Как сделать загрузку изображений без submit?

constb пишет:

ничего. на форме должен быть enctype="multipart/form-data"

На форме есть:

{!! Form::file('image', null, ['class' => 'form-control', 'enctype' => 'multipart/form-data']) !!}

Не в сети

#8 17.04.2017 16:39:56

Re: Как сделать загрузку изображений без submit?

разве enctype ставится на Form::file?? я с laravelcollective/html не работал, но по-моему на Form::open должно определяться что форма с файлами работает

Не в сети

#9 17.04.2017 16:45:27

Re: Как сделать загрузку изображений без submit?

Уже переписал загрузку по видео.

Не в сети

Подвал раздела