在cakephp2.7.7中,我收到错误“错误:发生了内部错误”。

时间:2015-12-18 12:33:46

标签: cakephp cakephp-2.0

将图像文件上传到其他文件夹时出现此错误。

  

“错误:发生内部错误。”.. !! !!

此代码获取上传图像的所有详细信息,如大小,临时名称等。 但它显示内部错误,也没有上传到给定目录的图像..

这是我的上传组件代码;文件名是UploadComponent.php:

<?php
    App::uses('Component','Controller');
    class UploadComponent extends Component
    {
    public function upload($data=null)
    {
        if(!empty($data))
        {
                foreach($data AS $file)// use for each for multiple upload
        {
            $filename= $file['name'];
            $file_tmp_name = $file['temp_name'];
            $dir = WWW_ROOT.'img'.DS.'uploads';
            $allowed = array('png','jpg','jpeg','bmp');
            if(!in_array(substr(strrchr($filename,'.'),1), $allowed))
            {
                throw new NotFoundException("Error Processing Request", 1);
            }elseif (is_uploaded_file($file_temp_name))
            {
                move_uploaded_file($file_tmp_name, $dir.DS.String::uuid().'-'.$filename);
            }
        }
        }
      }
     }

在控制器中我只是调用上传组件而我没有创建任何数据库。这里计数数据值为“5”,即使我选择一个文件。 这是控制器“ImagesController”的代码

查看部分我将文件夹名称创建为图像,文件名称为upload.ctp 这是一个观点:

 <?php echo $this->Form->create('Image', array('type'=>'file')); ?>
      <?php
  echo $this->Form->file('uploadfile', array('multiple'));
 echo $this->Form->end('Image');
 ?>

所以任何人都应该帮助解决这个问题并提出任何解决方案。该错误仅显示在组件中。我认为输入来自view(upload.ctp)的文件有问题。

1 个答案:

答案 0 :(得分:1)

  

自版本2.7以来不推荐使用:String类在2.7中已弃用,而支持CakeText类。虽然String类仍可用于向后兼容,但建议使用CakeText,因为它提供了与PHP7和HHVM的兼容性。

使用CakeText::uuid();

http://book.cakephp.org/2.0/en/core-utility-libraries/string.html