【问题标题】:ErrorException: Array to string conversion in fileErrorException:文件中的数组到字符串转换
【发布时间】:2020-11-28 02:49:51
【问题描述】:

当我使用 PUT 方法更新 URLImg 数据时遇到问题,它在 Postman 'ErrorException: Array to string conversion in file' 中引发以下错误,但如果我使用 POST 方法,上传 url 没有问题我的图片。

public function store(Request $request)
    {

        $values = $request->except('URLImg');
        $data = $request->only('URLImg[]');
        if($request->hasFile('URLImg')){
            foreach($request->file("URLImg") as $image)
            {
                $name = Str::random(10).'.'.$image->getClientOriginalExtension();
                $path = 'storage/img/';
                $image->move($path, $name);
                $data[] = $name;
         
                $tramite = Tramite::create($values);
                $tramite->URLImg = json_encode($data);
                $tramite->save();
            }
        }else{
            $tramite = Tramite::create($values);
            $tramite->save();
        }

        return response()->json($tramite, 201);

public function update(Request $request, Tramite $tramite)
    {
        $data = $request->only('URLImg[]');
        if($request->hasFile('URLImg')){
            foreach($request->file("URLImg") as $image)
            {
                $name = Str::random(10).'.'.$image->getClientOriginalExtension();
                $path = 'storage/img/';
                $image->move($path, $name);
                $data[] = $name;
         
                $tramite->URLImg = json_encode($data);
                $tramite->save();
            }
        }

        return response()->json($tramite, 201);
    }

Postman Config Postman Config

是的,几乎是相同的代码,但我只需要更新 URLImg 字段

【问题讨论】:

  • 您的错误消息还准确地告诉您是哪一行代码导致了问题。

标签: laravel


【解决方案1】:

想要对包含文件上传的表单使用 PUT 或 PATCH 请求 - 提交带有欺骗方法的 POST 请求

<form action="/foo/bar" method="POST">
    @method('PUT')

    ...
</form>

通过任何 javascript 框架,如 vue

let data = new FormData;
data.append("_method", "PUT")

axios.post("some/url", data)

使用_method 并将其设置为“PUT”或“PATCH”将允许将路由声明为 PUT 路由并仍然使用 POST 请求来提交表单数据

$_FILES 不会在 PUT 或 PATCH 请求中填充 multipart/form-data - PHP 限制

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-10
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    相关资源
    最近更新 更多