Laravel从API上传图像
我正在尝试使用API上传图像。尽管在运行第一个测试后,数据库只存储了目录而不是文件名,但最糟糕的是,它存储了存储映像所需目录之前的所有目录 我在商店中使用的代码如下:Laravel从API上传图像,laravel,Laravel,我正在尝试使用API上传图像。尽管在运行第一个测试后,数据库只存储了目录而不是文件名,但最糟糕的是,它存储了存储映像所需目录之前的所有目录 我在商店中使用的代码如下: public function store(Request $request) { $image = $request->file('image'); if($image == null){ $imagesDir = 'subjectImgs/';
public function store(Request $request)
{
$image = $request->file('image');
if($image == null){
$imagesDir = 'subjectImgs/';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$fileDir = $images[array_rand($images)];
$path = $fileDir;
} else {
$path = $image->storeAs('uploads/images/store/', $image->getClientOriginalName(), 'public');
}
$subject = new Homework([
'subject_id' => $request->subject_id,
'user_id' => auth()->user()->id,
'title' => $request->name,
'image' => $path,
'progress' => $request->progress,
'description' => $request->description,
'duedate' => $request->date
]);
$subject->save();
return response()->json([
"code" => 200,
"message" => "Homework added successfully"
]);
}
我是从移动设备上传的,我相信这些信息也很重要(?)在模拟器中也是一样的问题。您正在将
$path
保存到$subject->image
中,这相当于public\u path()/上载/图像/存储/'代码>。如果需要文件名,应添加$file->getClientOriginalName()
:
$subject=新作业([
...
'image'=>$path.$file->getClientOriginalName(),
...
]);
您正在将$path
保存到$subject->image
中,该路径等于公共路径()/上载/图像/存储/'代码>。如果需要文件名,应添加$file->getClientOriginalName()
:
$subject=新作业([
...
'image'=>$path.$file->getClientOriginalName(),
...
]);
您正在设置'image'=>$path,
以及在此之前的$path=public\u path()/上载/图像/存储/'代码>生成预期结果
现在,如果只想保存表单输入,可以使用以下代码:
$image = $request->file('image');
$path = $image->storeAs('uploads/images/store/', $image->getClientOriginalName(), 'public');
其中“public”是此处文档中描述的默认公共文件系统:您正在设置'image'=>$path,
以及在此之前的$path=public\u path()/上载/图像/存储/'代码>生成预期结果
现在,如果只想保存表单输入,可以使用以下代码:
$image = $request->file('image');
$path = $image->storeAs('uploads/images/store/', $image->getClientOriginalName(), 'public');
其中“public”是此处文档中描述的默认公共文件系统:这似乎可行,但当我尝试从移动设备上载图像时,没有存储任何内容。在这段代码中,服务器端发生的一切,请尝试调试有关移动问题的前端。请让我上载我获得的更新代码。我曾尝试使用失眠(它比邮递员好)进行调试,但它仍然没有存储图像。现在是代码问题了。在使用public
文件系统之前,您是否运行了命令php artisan storage:link
?是的,我确实运行了它这似乎是可行的,但当我尝试从移动设备上载图像时,没有存储任何内容。在这段代码中,服务器端发生了所有事情,试着调试前端关于你的手机问题让我上传我得到的更新代码。我曾尝试使用失眠(它比邮递员好)进行调试,但它仍然没有存储图像。现在是代码问题了。在使用public
文件系统之前,您是否运行了命令php-artisan-storage:link