#jquery #laravel
#jquery #laravel
Вопрос:
кто-нибудь может мне помочь? Я пытаюсь загрузить изображение с помощью jquery и laravel, но не знаю, как передать данные
Функция Ajax
var form_data = new FormData();
form_data.append('file', file_data);
form_data.append('link', link);
form_data.append('comment', comment);
form_data.append('reportid', reportid);
$.ajax({
url:"{{ route('report.update') }}",
type:"GET",
data:form_data,
contentType:false,
cache:false,
processData:false,
success:function(data) {
alert(data);
}
});
Маршрут
Route::get('report-update', ['uses'=>'Executive@reportUpdate', 'as'=>'report.update']);
Контроллер:
public function reportUpdate(Request $request)
{
$file = $request->file('file');
echo $file->getClientOriginalName();
}
Комментарии:
1. Измените тип
GET
наPOST
, а также измените свой Маршрут2. Во-первых, ваш маршрут неверен, это должен быть POST. И вы не можете напрямую отправить файл через AJAX подобным образом. Что вы можете сделать, это загрузить файл, используя некоторые другие методы, и передать имя или путь к файлу в данных вашей формы.. Вы можете использовать библиотеки, такие как blueimp ( github.com/blueimp/jQuery-File-Upload ) загрузить файл, а затем передать возвращаемые данные файла в AJAX
Ответ №1:
добавьте enctype=»multipart / form-data» в свою форму
enctype="multipart/form-data"
$.ajax({
url:"{{ route('report.update') }}",
type:"POST",
data:form_data,
contentType:false,
processData:false,
success:function(data){
alert(data);
}
});
Route::POST('report-update', ['uses'=>'Executive@reportUpdate', 'as'=>'report.update']);
Ответ №2:
просто попробуйте это
var formData = new FormData($("#formid")[0]);
$.ajax({
url: "{{ route('report.update') }}",
type: 'POST',
dataType: 'JSON',
data: formData,
processData: false,
contentType: false,
enctype: 'multipart/form-data',
mimeType: 'multipart/form-data',
cache: false,
success: function(data, textStatus, jqXHR) {
console.log(data)
}
});
и использовать метод form — это POST
Ответ №3:
Ajax
$("#FormId").on('submit', (function(e) {
e.preventDefault();
$.ajax({
url: "{{ route('report.update') }}",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData: false,
success: function(data) {
}
})
}));
Маршрут
Route::POST('report-update', ['uses'=>'Executive@reportUpdate', 'as'=>'report.update']);
Функция
public function reportUpdate(Request $request)
{
$file = $request->file('file');
$fileName = time().$request->file('file')->getClientOriginalName();
$path=$file->move('FolderPath',$fileName);
}