cakephp rest api 多文件上传
cakephp rest api multiple file uploading
我试图通过 REST API
在 cakephp V2.3
上传多个文件。我是 运行 api chrome 的 postman
插件。
问题是文件数组的格式。下面是我得到的格式。很难从上面的数组中获取数据。请指导我如何设置键以获取标准格式的值。
Array
(
[Reports] => Array
(
[name] => Array
(
[0] => Chrysanthemum.jpg
[1] => Jellyfish.jpg
)
[type] => Array
(
[0] => image/jpeg
[1] => image/jpeg
)
[tmp_name] => Array
(
[0] => /tmp/phpDZoRzW
[1] => /tmp/phpVyb98b
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 879394
[1] => 775702
)
)
)
我不完全确定我是否答对了你的问题,但我认为一个问题在于数据格式。我假设您使用的是 savemany
方法。数据应采用以下格式:
$data = array(
array('name' => 'Chrysanthemum.jpg', 'type' => 'image/jpeg', 'tmp_name' => '/tmp/phpDZoRzW', 'error' => 0, 'size' => 879394),
array('name' => 'Jellyfish.jpg', 'type' => 'image/jpeg', 'tmp_name' => '/tmp/phpVyb98b', 'error' => 0, 'size' => 775702)
);
基本上,您是逐个字段而不是逐个记录地提供数据。我不认为蛋糕可以正确处理这个。
要获取所需格式的数据,您可以遍历数据或使用 cakephp 提供的便捷方法 Hash,例如通过在所需的 keys/values.
上使用 extract
以正确的格式接收数据
如果您能够更改提交表单,您可以像这样命名文件输入字段。结果应该是所需的格式。
<input type="file" name="Report.0">
<input type="file" name="Report.1">
这将导致格式:
[Reports] => Array
(
[0] => Array
(
[name] => 'Chrysanthemum.jpg'
[type] => 'image/jpeg'
)
[1] => Array
(
[name] => 'Jellyfish.jpg'
[type] => 'image/jpeg'
)
)
不过,您应该使用 MODELNAME.{n}.FIELDNAME 作为 Cakephp 中表单字段的命名。因此,如果 reports 是您的模型,那么为您的文件字段设置一个字段名称是有意义的。
我试图通过 REST API
在 cakephp V2.3
上传多个文件。我是 运行 api chrome 的 postman
插件。
问题是文件数组的格式。下面是我得到的格式。很难从上面的数组中获取数据。请指导我如何设置键以获取标准格式的值。
Array
(
[Reports] => Array
(
[name] => Array
(
[0] => Chrysanthemum.jpg
[1] => Jellyfish.jpg
)
[type] => Array
(
[0] => image/jpeg
[1] => image/jpeg
)
[tmp_name] => Array
(
[0] => /tmp/phpDZoRzW
[1] => /tmp/phpVyb98b
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 879394
[1] => 775702
)
)
)
我不完全确定我是否答对了你的问题,但我认为一个问题在于数据格式。我假设您使用的是 savemany
方法。数据应采用以下格式:
$data = array(
array('name' => 'Chrysanthemum.jpg', 'type' => 'image/jpeg', 'tmp_name' => '/tmp/phpDZoRzW', 'error' => 0, 'size' => 879394),
array('name' => 'Jellyfish.jpg', 'type' => 'image/jpeg', 'tmp_name' => '/tmp/phpVyb98b', 'error' => 0, 'size' => 775702)
);
基本上,您是逐个字段而不是逐个记录地提供数据。我不认为蛋糕可以正确处理这个。
要获取所需格式的数据,您可以遍历数据或使用 cakephp 提供的便捷方法 Hash,例如通过在所需的 keys/values.
上使用extract
以正确的格式接收数据
如果您能够更改提交表单,您可以像这样命名文件输入字段。结果应该是所需的格式。
<input type="file" name="Report.0">
<input type="file" name="Report.1">
这将导致格式:
[Reports] => Array
(
[0] => Array
(
[name] => 'Chrysanthemum.jpg'
[type] => 'image/jpeg'
)
[1] => Array
(
[name] => 'Jellyfish.jpg'
[type] => 'image/jpeg'
)
)
不过,您应该使用 MODELNAME.{n}.FIELDNAME 作为 Cakephp 中表单字段的命名。因此,如果 reports 是您的模型,那么为您的文件字段设置一个字段名称是有意义的。