如何从 vue js 应用程序上传 laravel 的本地 public 磁盘中的文件?
how to upload the file in local public disk of laravel from vue js app?
你好,我想从 vue js 应用程序将文件上传到 laravel 的本地 public 目录,并且只将 唯一名称 发送到 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);
将移至
public/images 您的 laravel 项目的目录。
我添加了time()
功能,使图像文件独一无二。
不要忘记在 vuejs 方法的 axios 中使用 formData。
你好,我想从 vue js 应用程序将文件上传到 laravel 的本地 public 目录,并且只将 唯一名称 发送到 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);
将移至
public/images 您的 laravel 项目的目录。
我添加了time()
功能,使图像文件独一无二。
不要忘记在 vuejs 方法的 axios 中使用 formData。