我打算通过laravel vuejs上传我的图像文件到存储文件夹,但现在我只是试图通过dd();
打印数据,但它没有返回任何响应,也没有错误,我怎么知道我做得正确与否?
我认为错误坚持通过formData
时,通过 AJAX 传递数据与此
data: {form_data:formData, ........
输入文件
<input type='file' onchange="readURL(this);" id="file" ref="file" name="profile_avatar" accept=".png, .jpg, .jpeg" v-model="card_image_main" enctype="multipart/form-data"/>
vuejs
module.exports = function(data) {
var _data = {
file: '',
};
return {
data: (() => Object.assign({}, data, _data)),
props: {
data_object: Object,
},
mounted() {
this.init();
},
methods: {
init() {
var vm = this;
var t;
},
updateMain(){
let vm = this;
this.file = this.$refs.file.files[0];
let formData = new FormData();
formData.append('file', this.file);
this.$refs.file.value='';
$.ajax({
url: vm.$route('staff.ajax.emvvalidationdetails.updatemain'),
type: 'POST',
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'), 'undefined': 'multipart/form-data'},
data: {form_data:formData, emvdetailsdata: vm.emvdetailsdata[0], other_ext_name: vm.other_ext_name, other_contact_name: vm.other_contact_name},
success: function (response) {
if (response) {
vm.emvdetailsdata = response;
}},
});
document.getElementById("EditForm").submit();
}
}
路线
Route::post('updatemain', 'EmvvalidationdetailsController@updatemain')->name('staff.ajax.emvvalidationdetails.updatemain');
EmvvalidationdetailsController
public function updatemain(Request $request)
{
dd($request->all());
}
2条答案
按热度按时间ccrfmcuu1#
我会先安装望远镜并检查请求
o2gm4chl2#
服务器对上传的文件的处理方式与其他表单数据不同。当通过表单上传文件时,它是作为二进制流发送的,而不是作为字符串发送的,它需要特殊的处理才能正确处理。
$request->file()
方法为您处理此处理。而$request->get()
或$request->all()
方法不会。通过像这样更新控制器代码,您应该能够看到上传的文件并存储它: