【发布时间】:2017-03-15 20:01:55
【问题描述】:
我在这里遇到了一个奇怪的问题。我正在尝试使用“Illuminate\Http\UploadedFile”“伪造”上传的文件。由于我注意到该类的每个实例都处理一个文件,因此我设法创建了一个返回实例数组的循环。通过这种方式,我认为我可以直接将该数组放入请求的正文中。
测试调用如下所示:
$this->json("patch", "api/assets/1", ["damages" => $this->prepareDamagesPhotos());
同时执行prepareDamagesPhotos():
protected function prepareDamagePhotos($how_many = 3, $image_name_no_extension_or_id = "dmg")
{
if ($how_many > 5) {
throw new InvalidArgumentException("Cannot load more than 5 damage images");
}
if ($how_many == 0) {
throw new InvalidArgumentException("Cannot load 0 images");
}
$images = [];
for ($i = 1; $i < $how_many + 1; $i++) {
$path = public_path("uploads/testing/damages/images/" . $image_name_no_extension_or_id . "#0" . $i . ".png");
$image = new \Illuminate\Http\UploadedFile(
$path,
$image_name_no_extension_or_id . "#0" . $i . ".png",
"image/png",
filesize(public_path("uploads/testing/damages/images/". $image_name_no_extension_or_id . "#0" . $i .
".png")),
NULL,
TRUE
);
array_push($images, $image);
}
return $images;
}
一切正常,但是当涉及到 die 'n dump $input->all() 时,输出如下:
array:1 [
"damages" => array:3 [
0 => []
1 => []
2 => []
]
]
这不好……
我想知道这种方法有什么问题,因为传递UploadedFile 的单个实例就像一个魅力。为什么数组被其值刷新但保持其结构?哎哟
我也试图找到一种方法来以另一种方式处理此问题,但我发现的只是单个文件上传。我重复一遍,已经像一个魅力。
我真的很困惑……有什么帮助吗?
【问题讨论】:
标签: php laravel file-upload