【发布时间】:2020-01-01 21:28:25
【问题描述】:
当我尝试将图像从 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;
还有 POSTMAN 配置:
已经尝试将内容类型标头配置为:x-www-form-urlencoded,内容类型为 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/ 没有保存的图像
提前谢谢你:)
【问题讨论】:
-
发布您的
error_log通知、警告和请求错误 -
另外,你到底在做什么将上传放在公共文件夹中?这真的很不安全
-
感谢回复,我请求的时候没有报错,应该是保存好图片,上传图片的时候postman字段只有一个警告,就是: “这个文件位于工作目录之外。协作者可能没有相同的文件路径。”另一方面,这个 API 将从他们交替开发的前端使用,考虑到这一点,我应该保存在哪里遵循最佳实践的图像以及前端如何获得它?
-
顺便说一句,我刚刚意识到我的函数中的 public_path 将它带到了 app / public ...但是在我的 laravel 项目中,我的根文件夹中有 public 文件夹,而不是 app /跨度>
-
存储一路保存任何文件
标签: php laravel api file-upload postman