我正試圖在Laravel和Vuejs中使用Axios發送檔案。所有的資料都存盤在variantsProd變數中:
data(){
return {
form: new Form({
variantsProd: [],
}),
};
},
。
問題出在images屬性。它包含一個檔案。如果我用[]改變images的值,它就可以作業,所有的資料都可以被發送。但如果我附加一個影像,我總是得到500(內部服務器錯誤)。我不知道為什么會發生這種情況?
let formData = new FormData();
let varProd = JSON. stringify(this.form.variantsProd) 。
formData.append('variantsProd', varProd) 。
this.form.
.post('api/staff/products/store'/span>, formData, {
header: {
'Content-Type': 'multipart/form-data',
},
})
.then((response) =>/span> {
console.log( response)。
if (this.form.isVariantExists > 0) {
this.validateVariants( response)。
} else {
this.$router.push({ name。'product-index' })。)
this.showSuccessMsg(回應)。
}
})
.catch((error) => {
console.log(錯誤)。
swal.fire( {
icon: 'error',
title: 'Oouch...',
text: '出錯了! 請確保你輸入的是有效的資料!'。
footer: '<a href>為什么我有這個問題?</a> '。
});
})
.finally(() =>/span> {
$('#loadingButton').attr('disabled', false) 。
$('.proc-regis').remove()。
$('#loadingButton').html(`Save`)。
});
[UPDATE]這就是我在通過axios發送檔案之前在variantsProd中保存檔案的方式。
this.form。 variantsProd.forEach((item) => {
let totalImages = $('.images' item. id)[0].files.length。
let images = $('.images' item.id)[0] 。
let getImg = [] 。
for (let i = 0; i < totalImages; i ) {
getImg.push(images.files[i])。
}
item.total_images = totalImages;
item.images = getImg; //error here, can not sent this data to controller.
});
FYI。
在這種情況下,我正在使用bootstrap-fileinput。
uj5u.com熱心網友回復:
錯誤500意味著服務器不知道如何處理你的請求。請確保你的請求與服務器期望的格式一致。
uj5u.com熱心網友回復:
<input type="file" ref="ident_card" />
let identity_card = this.$refs. identity_card.files[0] 。
form.append("identity_card_image", identity_card)。
axios.post(`api_url`, form)
.then(response => {
})
你可以試試。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/332731.html
標籤:

