当我尝试使用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
中没有错误。
进一步挖掘后,我发现这是一个内存限制的问题,所以我更新了限制,现在我收到了错误:
Can not determine the mimetype.
从我在CakePHP的Validation类中看到的,它试图得到tmp_name
的mime类型/tmp/phpZtCTVC
,看起来它无法得到它所以它抛出一个异常
答案 0 :(得分:1)
原来问题是php扩展程序fileinfo
未启用。
刚刚用扩展程序重新编译了php,之后一切正常。 :)