如何从vue js应用程序上传laravel本地公共磁盘中的文件?

问题描述

嗨,我想从 vue js 应用程序将文件上传到 laravel 的本地公共目录,并且只在提交表单时将 唯一名称 发送到 MysqL。但不知道如何用 js 做到这一点

// template tag
<input type="file" @change="uploadFile" >


// methods on Vue Js app


methods: {
uploadFile(){
 // logic to upload the file in local public disk and only send the unique name to MysqL 
}
}

解决方法

我认为你仍然应该为此制作一个 API。并通过api上传

我这里有一个代码,也许可以帮到你。只需将其添加到您的 Laravel 控制器中即可。

$user = User::find($request->user_id);
        if ($request->file('profile_image') !== null) {
            $imageProfile = $request->file('profile_image');
            $imageProfileSanitizedName = time() . $imageProfile->getClientOriginalName();
            $imageProfile->move("images/",$imageProfileSanitizedName);
            $user->image = $imageProfileSanitizedName;
        }
        $user->save();

这个功能 $imageProfile->move("images/",$imageProfileSanitizedName); 将移至 Laravel 项目的 public/images 目录。

我添加了 time() 函数以便图像文件是唯一的。

不要忘记在 vuejs 方法的 axios 中使用 formData。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...