尽管我会发布我的答案,但它完全有效。我从两个文件输入文件中获取一个 pdf 和 jpeg 图像,然后重命名为用户在输入文本字段中提供的给定标题。使用 $newevent 中的两个变量,这些是与其他输入一起保存到数据库、路径和重命名的图像的内容。
这段代码非常简单。该代码的主体来自该站点上的一篇文章,我刚刚将其更改为供我使用。
如果您还尝试添加/上传不同的文件类型,例如 doc 或 png,您只需要知道要上传的文档的标题类型并将其添加到 if 语句。
希望这对其他人有帮助!
格伦。
$pathimg = "/eventfiles/img/";
$pathpdf = "/eventfiles/pdf/";
$dir_pdf = getcwd().$pathpdf;
$dir_img = getcwd().$pathimg;
$PDF_Path = $dir_pdf . $this->data['Event']['pdf']["name"];
$IMG_Path = $dir_img . $this->data['Event']['img']["name"];
$IMG_WithOutSpace = preg_replace('/\s+/', '_', $newevent['title']);
$PDF_WithOutSpace = preg_replace('/\s+/', '_', $newevent['title']);
$newevent['img'] = "/vh/eventfiles/img/" . $IMG_WithOutSpace . ".jpg";
$newevent['pdf'] = "/vh/eventfiles/pdf/" . $PDF_WithOutSpace . ".pdf";
if ((( $this->data['Event']['img']["type"] == "application/pdf") || ( $this->data['Event']['img']["type"] == "image/jpeg"))) {
if (($this->data['Event']['img']["error"] > 0) || ($this->data['Event']['pdf']["error"] > 0)) {
$this->Session->setFlash(__('An error has occured during updating. Please check all the fields.', true), 'default', array('class' => 'error-message'));
$this->redirect($this->referer());
exit();
} else {
move_uploaded_file( $this->data['Event']['img']["tmp_name"], $IMG_Path);
rename($IMG_Path, $dir_img . $IMG_WithOutSpace. ".jpg");
move_uploaded_file( $this->data['Event']['pdf']["tmp_name"], $PDF_Path);
rename($PDF_Path, $dir_pdf . $PDF_WithOutSpace . ".pdf");
$filename= $this->data['Event']['pdf']["name"];
$filename= $this->data['Event']['img']["name"];
}