@prosto_anton1

Не могу разобраться с отправкой файла на сервер(Laravel & Ajax)?

При простой загрузки без Ajax все работает, через Ajax нет.
Выдает ошибку 404.
Ошибка у меня наверное в $request, я наверное неправильно его сформировываю если используется Ajax.
Заранее спасибо.

Код html
<meta name="csrf-token" content="{{ csrf_token() }}">

<input class="file-save" accept="image/*" type="file" name="img">
<div class="sumbit">Отправить</div>


Код js
$('.sumbit').click(function(){
                 //Получаем данные с формы
                var files = $('.file-save').files;
      
                function funcSuccess (data) {
        		//В случае успеха возвращает путь к картинки 
			console.log(data);
		}

		$.ajax ({
			url: "ajax/save-photo",
			type: "POST",
                        dataType: 'html',
			data: files,
                        processData: false,
                        contentType : false,
                        headers: {
                             'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                        },
			success: funcSuccess,
		});
});


//Код роутера
Route::post('/ajax/save-photo', 'Ajax\PhotoController@main');


Код контроллера
namespace App\Http\Controllers\Ajax;

use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class PhotoController extends Controller
{
    //
    public function main(Request $request) {
        //Загрузка файла
        $path = Storage::putFile('public\avatars', $request->files('img'));
        return $path;
    }
}
  • Вопрос задан
  • 368 просмотров
Пригласить эксперта
Ответы на вопрос 1
@hakkol
Url должен начинаться с "/", т.е. строчка будет url: "/ajax/save-photo",
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы