CakePHP保存所有文件名

时间:2017-02-01 14:39:48

标签: save cakephp-2.4

当我尝试使用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的Validation类中看到的,它试图得到tmp_name的mime类型/tmp/phpZtCTVC,看起来它无法得到它所以它抛出一个异常

1 个答案:

答案 0 :(得分:1)

原来问题是php扩展程序fileinfo未启用。

刚刚用扩展程序重新编译了php,之后一切正常。 :)