首页 > 解决方案 > 无法使用 POSTMAN 将文件保存在我的 LARAVEL API 文件夹中

问题描述

当我尝试将图像从 POSTMAN 上传到我的 LARAVEL API 时,我遇到了一个小问题,我正在创建路径和名称,但是在发出 POST 请求时,图像没有保存在应该保存的假定文件夹中。

该路线用于创建产品,图像与之对应:

路线:

Route::post('product/new','ProductController@store');

在我的控制器中:

    $product = new Product;
    $product->name = $request->input('name');
    //Other staff

    $file = $request->file('image');
    $extension = $file->getClientOriginalExtension();
    $filename = $product->name . '.' . $extension;
    $path = $file->move(public_path("/uploads/image/products/"), $filename);
    $product->image = $path;

邮递员配置:

在此处输入图像描述

已经尝试将 Content 类型标头配置为:x-www-form-urlencoded,使用 Content 类型multipart/form-data和不使用any Content type,并且 3 个都不起作用

我得到的结果是:

{
"id": 1,
"name": "test1",
//staff
"image": "/app/public/uploads/image/products/test1.png",
}

但是如果我在那里检查:/app/public/uploads/image/products/ 没有保存的图像

先感谢您 :)

标签: phplaravelapifile-uploadpostman

解决方案


改为对请求中的文件使用 store 方法,并符号链接公共的存储目录

$extension = $file->getClientOriginalExtension();
$filename = $product->name . '.' . $extension;
$request->image->storeAs('uploads/image/products/', $filename);

并运行php artisan storage:link


推荐阅读