首页 > 解决方案 > 移动后找不到PHP文件

问题描述

我有一个脚本可以移动文件,然后尝试让文件生成缩略图。但是,它总是说该文件不存在。如果我file_exists()在脚本执行后尝试文件,它似乎找到了它。

我的代码片段:

// Move file, returns a path e.g. "\home\sambam\public_html\sa\storage\files\0\rxugn7OXoHNRY4J.mp4"
// This also sets file permissions to 0755
$source = $fs->move_from_tmp($filename);

// clear cache
clearstatcache(true);

// Now file_exists returns false
if(file_exists($source)){
  // generate thumbnail;
}

move_from_tmp:

public function move_from_tmp($filename){
  // $this->tmp_folder = /home/sambam/public_html/ss/storage/tmp
  // this->folder =  /home/sambam/public_html/ss/storage/files/0

  if(!is_readable($this->tmp_folder.self::DS.$filename)){ chmod($this->tmp_folder.self::DS.$filename, 0755); }
  $ext = strtolower(pathinfo(basename($filename), PATHINFO_EXTENSION));
  $new_filename = pathinfo($filename, PATHINFO_FILENAME);


  // Move file
  if(rename($this->tmp_folder.self::DS.$filename, $this->folder.self::DS.$new_filename.".".$ext)){
    return $this->folder.self::DS.$new_filename.".".$ext;
  }else{
    return false;
  }
}

这适用于我的本地机器,即 Windows,但似乎不适用于我的生产机器,即 Linux CentOs。

我也尝试过:

标签: php

解决方案


推荐阅读