我在laravel工作。我有表格数据和要在DB中使用ajax提交的文件。
它的创建但不会在成功方法中返回任何响应,这是我的代码
for /l %i in (1,1,199) do md prefix-%a
我有表格中的下拉列表逐个插入或附加文件,所以我使用$('#student-frm').submit(function(){
$("#processing").removeAttr("style", "display:none");
var form_data = $("#student-frm").serialize();
form_data.append("file", $("#import").get(0).files[0]);
$.ajax({
url: '/student-management/emails',
type: 'POST',
data: form_data,
success: function(result) {
alert(result);
}
});
return false;
});
如果我从上面的方法中移除以下代码行,则可以正常工作。
form_data.append().
我从Controller返回
form_data.append("file", $("#import").get(0).files[0]);
它在浏览器中返回
请帮助解决这个问题
由于
答案 0 :(得分:1)
问题是GetFriendImage
,searialze
是两回事。您无法将文件附加到FormData
数据。在这种情况下,您需要searialze
。使用它像:
FormData
并附加您想要的数据。
例如:
var form_data= new FormData();
这就像将html元素附加到var file_data = $('#import').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
// append file to form, in the same way you can append more data in key, value pair
中,而不是将该表单提交给服务器。
在服务器端,您可以获得附加的form
,如:
file
答案 1 :(得分:0)
这是工作代码: jquery代码:
$('#student-frm').submit(function(){
$("#processing").removeAttr("style", "display:none");
var formData = new FormData($('#student-frm'));
$.ajax({
url: '/student-management/emails',
type: 'POST',
data: formData,
success: function(result) {
alert(result);
}
});
return false;
});
Laravel代码:
$destinationPath = 'path/th/save/file/';
$image = $request->file('input_file');
$name = $image->getClientOriginalName();
$file_name = $name;
$image->move($destinationPath,$file_name);
答案 2 :(得分:0)
在使用formdata发送文件时,在ajax代码中添加这两行,因此需要添加这些行
processData: false,
contentType: false,
所以你的ajax会像这样
$.ajax({
url: '/student-management/emails',
type: 'POST',
data: form_data,
processData: false,
contentType: false,
success: function(result) {
alert(result);
}
});
答案 3 :(得分:0)
使用表单数据进行上传:
$('#student-frm').submit(function(){
$("#processing").removeAttr("style", "display:none");
var form = $('form')[0];
var formData = new FormData(form);
// Attach file
formData.append('file', $('input[type=file]')[0].files[0]);
$.ajax({
url: '/student-management/emails',
type: 'POST',
data: form_data,
success: function(result) {
alert(result);
}
});
return false;
});
从Laravel Controller
中获取请求文件if ($request->hasFile('file')) {
$file = $request->file('file');
}