CakePHP 3:如何检查文件或图像是否存在

lf5gs5x2  于 2022-11-11  发布在  PHP
关注(0)|答案(3)|浏览(169)

我只是想检查一个图像是否存在,我可以用PHP来做。例如:-

$file = WWW_ROOT .'uploads' . DS . 'employee' . DS .'_'.check.jpg;

$file_exists = file_exists($file);

它对我来说工作得很好。但是我也试过像这样使用elementExists:-

if($this->elementExists("../".$employees->front_image))
{
   echo $this->Html->image("../".$employees->front_image); // image output fine without condition.
}

// Here $employees->front_image = uploads/employee/employeename.jpg

这个检查不起作用。我如何在CakePHP中做这个?

knsnq2tg

knsnq2tg1#

CakePHP是用PHP编写的,所以如果你已经有了一个简单的解决方案,比如file_exists(),那么你可以这样写:-

if (file_exists(WWW_ROOT . $employees->front_image)):
   echo $this->Html->image('../' . $employees->front_image);
endif;

elementExists()用于检查View元素是否存在,而不是检查文件是否存在于webroot中,因此不应像您尝试的那样使用。它确实执行file_exists()检查,但这只会扫描所有可用的View元素路径。

fbcarpbf

fbcarpbf2#

我认为这在Cake 3中是有效的(你应该在afterFind方法IMO中这样做):

// Create a new file with 0644 permissions
$file = new File('/path/to/file.php', true, 0644);

if ($file->exists()) {
    //do something
}

$file->close();

您的方法是检查视图元素是否存在。

inb24sb2

inb24sb23#

这对我很有效:
问:**如何检查远程url上是否存在图片?**解释:

  • $r文件将采用url
  • $check将以读取权限打开文件
  • 如果文件存在,则打印“文件存在”,否则打印“文件不存在”。

密码:

<?php
  // Remote file url
  $rFile = 'https://www.example.com/files/test.pdf';

  // Open the file
  $check = @fopen($rFile, 'r');

  // Check if the file exists
  if(!$check){
    echo 'File does not exist';
  }else{
    echo 'File exists';
  }
?>

相关问题