将图像文件上传到其他文件夹时出现此错误。
“错误:发生内部错误。”.. !! !!
此代码获取上传图像的所有详细信息,如大小,临时名称等。 但它显示内部错误,也没有上传到给定目录的图像..
这是我的上传组件代码;文件名是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)的文件有问题。
答案 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