CakePHP SaveAll 文件名
CakePHP SaveAll filename
当我尝试使用 saveAll
功能时,当有图像上传到数据时无法正确保存。
$this->Deal->saveAll($this->request->data);
这是一个有效的数据示例:
array(2) {
["Resort"]=>
array(8) {
["resort"]=>
string(4) "Test"
["rating"]=>
string(3) "4.0"
["image_link"]=>
string(0) ""
["trip_advisor"]=>
string(12) "123123123123"
["image"]=>
string(0) ""
["deal_id"]=>
string(3) "258"
["id"]=>
string(3) "245"
["filename"]=>
array(5) {
["name"]=>
string(0) ""
["type"]=>
string(0) ""
["tmp_name"]=>
string(0) ""
["error"]=>
int(4)
["size"]=>
int(0)
}
}
["Deal"]=>
array(1) {
["id"]=>
string(3) "258"
}
}
这是一个无效的数据示例:
array(2) {
["Resort"]=>
array(8) {
["resort"]=>
string(4) "Test"
["rating"]=>
string(3) "4.0"
["image_link"]=>
string(40) "http://google.com"
["trip_advisor"]=>
string(6) "123123"
["image"]=>
string(0) ""
["deal_id"]=>
string(3) "258"
["id"]=>
string(3) "245"
["filename"]=>
array(5) {
["name"]=>
string(12) "logo.png"
["type"]=>
string(9) "image/png"
["tmp_name"]=>
string(14) "/tmp/phpZtCTVC"
["error"]=>
int(0)
["size"]=>
int(3702)
}
}
["Deal"]=>
array(1) {
["id"]=>
string(3) "258"
}
}
更新
不仅不保存,还什么都没有返回。当我尝试 var_dump:
时我得到一个空白页面
var_dump($this->Deal->saveAll($this->request->data));
此外,error_log
.
也没有错误
更新 2
进一步挖掘后,我发现这是内存限制的问题,所以我更新了限制,现在我得到了错误:
Can not determine the mimetype.
根据我在 CakePHP 的验证 class 中看到的内容,它正在尝试获取 tmp_name
的 mime 类型,即 /tmp/phpZtCTVC
并且它似乎无法获取所以它抛出异常。
原来问题是 php 扩展 fileinfo
没有启用。
刚刚使用扩展重新编译了 php,之后一切正常。 :)
当我尝试使用 saveAll
功能时,当有图像上传到数据时无法正确保存。
$this->Deal->saveAll($this->request->data);
这是一个有效的数据示例:
array(2) {
["Resort"]=>
array(8) {
["resort"]=>
string(4) "Test"
["rating"]=>
string(3) "4.0"
["image_link"]=>
string(0) ""
["trip_advisor"]=>
string(12) "123123123123"
["image"]=>
string(0) ""
["deal_id"]=>
string(3) "258"
["id"]=>
string(3) "245"
["filename"]=>
array(5) {
["name"]=>
string(0) ""
["type"]=>
string(0) ""
["tmp_name"]=>
string(0) ""
["error"]=>
int(4)
["size"]=>
int(0)
}
}
["Deal"]=>
array(1) {
["id"]=>
string(3) "258"
}
}
这是一个无效的数据示例:
array(2) {
["Resort"]=>
array(8) {
["resort"]=>
string(4) "Test"
["rating"]=>
string(3) "4.0"
["image_link"]=>
string(40) "http://google.com"
["trip_advisor"]=>
string(6) "123123"
["image"]=>
string(0) ""
["deal_id"]=>
string(3) "258"
["id"]=>
string(3) "245"
["filename"]=>
array(5) {
["name"]=>
string(12) "logo.png"
["type"]=>
string(9) "image/png"
["tmp_name"]=>
string(14) "/tmp/phpZtCTVC"
["error"]=>
int(0)
["size"]=>
int(3702)
}
}
["Deal"]=>
array(1) {
["id"]=>
string(3) "258"
}
}
更新
不仅不保存,还什么都没有返回。当我尝试 var_dump:
时我得到一个空白页面var_dump($this->Deal->saveAll($this->request->data));
此外,error_log
.
更新 2
进一步挖掘后,我发现这是内存限制的问题,所以我更新了限制,现在我得到了错误:
Can not determine the mimetype.
根据我在 CakePHP 的验证 class 中看到的内容,它正在尝试获取 tmp_name
的 mime 类型,即 /tmp/phpZtCTVC
并且它似乎无法获取所以它抛出异常。
原来问题是 php 扩展 fileinfo
没有启用。
刚刚使用扩展重新编译了 php,之后一切正常。 :)