使用Laravel 6和Vue上传图像

时间:2020-02-04 13:21:16

标签: vue.js axios laravel-6

我想上传图片,当我在控制器中使用vardump时,它会在此图片中返回这样的图片名称

See Image

但是当我使用$ myinfo-> save时,它返回空

这是我的控制器代码

public function UpdatePhoto(Request $request){
   $myinfo = EmployeeBasicInformation::where(['employee_id' => Auth::user()->employee_id])->first();
    if ($request->hasFile('image')) {
        $image = $request->file('image');
        $extension_image = $image->getClientOriginalExtension();
        Storage::disk('public')->put('uploads/'.$image->getFilename().'.'.$extension_image, File::get($image));
        $myinfo->emp_img = $image->getFilename().'.'.$extension_image;
        $myinfo->save;

        //var_dump($myinfo->emp_img);
    }
    //echo "Test";
}

这是我在Vue组件中用于表单的代码

 <form @submit.prevent="formSubmit" method="POST" enctype="multipart/form-data">
            <input type="file" name="image" class="form-control" ref="image" @change="onImageChange($event)">
            <button class="btn btn-success">Submit</button>
        </form>

这是我的vue组件中的脚本

<script>
export default {
    data() {
        return {
            emp_img: '',
        }
    },
    methods: {
         onImageChange(e){
            console.log(e.target.files[0]);
            this.emp_img = e.target.files[0];
        },
        formSubmit() {

            let data = new FormData(); 
            data.append('image', this.emp_img);
            axios.post('UpdatePhoto',data) // change this to post )
            .then(res =>{
            console.log(res); 
            }) 
            .catch(error => 
            {
                console.log(error); //             
           // window.location.href = "/myinfo";
            })

        },
        profilePhoto(){
            return "uploads/sampleimage.jpg";
        },
    },
}

我搜索了所有内容以寻找可能的解决方案。但是这些解决方案没有用。

0 个答案:

没有答案