gpt4 book ai didi

php - 合并请求不起作用

转载 作者:可可西里 更新时间:2023-11-01 16:02:49 48 4
gpt4 key购买 nike

我正在尝试用图像文件名替换“pic”值,该值在进入时设置为数组,但合并似乎不起作用。

我在日志中没有收到以下代码的任何错误。我想我还不允许嵌入图片,所以下面有链接。我正在做一个 Laravel 项目。

Log::info($request);

$image = $request->file('pic');
$imageName = $image->getClientOriginalName();

$request->merge(array('pic' => $imageName));
$request->file('pic')->move(base_path()."/public/profile_pics",$imageName);

Log::info($request);

Laravel Log

有什么想法吗?

最佳答案

您不能如此轻易地删除文件。这里的问题很复杂,但我会尽力解释。

所以基本上每次您初始化请求并尝试从中获取数据时,请求都会转换所有文件并将它们存储在 protected 数组中。
然后,当您请求 ->all() 时,它会递归地将所有纯文本输入与文件输入合并,因此如果您有名称为 pic 的纯文本输入和名称为 的文件>pic,文件比纯文本输入优先显示。

现在又脏又便宜的解决方案:

    $request = new Request($request->all());
$request->merge(['pic' => 'zzz']);
dd($request->all());

使用原始请求的属性形成新的请求,那么您的新请求将没有任何文件,因此您可以轻松地合并任何您需要的内容。


总而言之:一旦您尝试从请求中访问任何值,它会将文件保存在 protected 数组中,现在无法删除它们。
但是,如果您有干净的请求,之前没有任何访问权限,您可以通过编写以下行轻松删除它们:$request->files = collect();

关于php - 合并请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37232340/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com