首先我嘗試通過ajax上傳檔案,當我嘗試dd($request->all())在我的控制器中時,它給出了結果empty array
public function uploadFile(Request $request){
dd($request->all());
}
我的刀片視圖與 ajax
<label for="inputfile">
<a title="Click here to upload record "><i class="fa fa-upload"></i></a>
</label>
<input id="inputfile" name="inputfile" type="file" />
<script>
$('#inputfile').on('change',function(ev){
ev.preventDefault();
var postData=new FormData();
postData.append('file',this.files[0]);
$.ajax({
url:'{{url('reporting/uploadFile')}}',
headers:{'X-CSRF-Token':$('meta[name=csrf_token]').attr('content')},
type:"get",
contentType:false,
data:postData,
processData:false,
dataType:'json',
success: function( data ) {
console.log(data)
},
error: function() {
alert('error');
} }); });
</script>
我的 Laravel 版本是 5.8 。流程是當用戶上傳附件時,它會直接存盤到檔案存盤中,無需點擊提交按鈕。但是當我嘗試檢索 $request->all() 它回傳空陣列時,我無法繼續下一步。對不起,如果我的解釋不清楚。
uj5u.com熱心網友回復:
請確保您正確使用表單多部分設定。這通常是大多數情況下的問題。
<form action="upload.php" method="post" enctype="multipart/form-data">
uj5u.com熱心網友回復:
是的,laravel 有時真的很痛苦,尤其是在檔案上傳方面。
你可以在 laravel 5.8 上試試這篇文章,試試看,讓我知道它是否有效。
https://www.w3adda.com/blog/laravel-5-8-jquery-ajax-form-submit
我認為這篇文章的主要區別在于它在ajax呼叫中設定資料的方式。但是,您可能需要檢查整篇文章并將其與您的代碼進行比較。
$.ajax({
url: "{{ url('jquery-ajax-form-submit')}}",
method: 'post',
data: $('#contact_us').serialize(),
uj5u.com熱心網友回復:
let files = $('#inputfile');
let image = files[0].files;
let form_data = new FormData();
if (image.length > 0) {
for (let i = 0; i < image.length; i )
form_data.append('inputfile[]', image[i]);
}
$.ajax({
url:'{{url('reporting/uploadFile')}}',
headers:{'X-CSRF-Token':$('meta[name=csrf_token]').attr('content')},
type:"get",
contentType:false,
data:form_data,
processData:false,
dataType:'json',
success: function( data ) {
console.log(data)
},
error: function() {
alert('error');
}
});
});
嘗試這個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336560.html
標籤:javascript php 阿贾克斯 拉拉维尔
下一篇:反應組件渲染中的物件迭代不起作用
