我正在嘗試在 laravel 6 中使用 ajax 將 pdf 與其他輸入值一起存盤。這里我沒有使用表單 html 元素。它顯示在 null 上呼叫成員函式 getClientOriginalExtension()。 如何發送檔案?
在刀片
<input name="phone" type="text" class="form-control phone">
<input type="file" name="my_doc" accept="application/pdf" class="my_doc" id="my_doc">
<button type="button" class="store_new"> Save </button>
$(document).on('click', '.store_new', function () {
var phone= $('.phone').val();
var my_doc= $('.my_doc').val();
$.ajax({
url: '{{ url('/admin/add-new-item') }}',
type: "POST",
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},
data: {
phone: phone,
my_doc: my_doc,
},
success: function (response) {
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
});
在控制器中
use File;
public function store(Request $request)
{
$image = $request->file('my_doc');
$new_name = rand() . '.' . $image->getClientOriginalExtension();
$image->move(public_path('final_doc'), $new_name);
}
uj5u.com熱心網友回復:
您需要將有效負載作為 formData 發送或將您的物件轉換為 formData 并傳遞實際檔案
IE
let formData = new FormData()
formData.append('phone', $('.phone').val() )
// Attach file
formData.append('my_doc', $('input[type=file]')[0].files[0])
$.ajax({
.
.
.
data: formData,
.
.
.
});
或者你可以使用這個
此外,在您的 laravel 控制器上,確保檔案在處理之前不為空,這樣您就不會收到任何 php 錯誤。
$doc = $request->file('my_doc');
if ( $doc ) {
// process your file
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/513059.html
標籤:javascriptjQuery阿贾克斯拉拉维尔laravel-5
上一篇:在laravel中搜索多個表
