php 上传图像文件在Laravel vuejs中不工作

gpfsuwkq  于 2023-04-19  发布在  PHP
关注(0)|答案(2)|浏览(141)

我打算通过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());
}
ccrfmcuu

ccrfmcuu1#

我会先安装望远镜并检查请求

o2gm4chl

o2gm4chl2#

服务器对上传的文件的处理方式与其他表单数据不同。当通过表单上传文件时,它是作为二进制流发送的,而不是作为字符串发送的,它需要特殊的处理才能正确处理。$request->file()方法为您处理此处理。而$request->get()$request->all()方法不会。通过像这样更新控制器代码,您应该能够看到上传的文件并存储它:

public function updatemain(Request $request)
{
    $file = $request->file('file');
    // dd($file);
    $file->store('public/src/');
}

相关问题