对于排队的电子邮件作业中的现有文件,File :: exists返回false

时间:2016-11-08 14:24:39

标签: php laravel email queue jobs

我正在尝试使用Laravel的队列发送电子邮件,在此电子邮件中,如果使用此功能存在该文件,我将显示用户的个人资料图片:

public function getProfilePictureAttribute()
{
    $path = 'users/' . $this->id . '/picture.png';
    if (File::exists(public_path() . $path)) {
        return $path;
    } else {
        return $this->picture_default;
    }
}

我在网络上使用相同的功能并且它正常工作,但在电子邮件中,通过工匠和桌面工作,我总是得到默认图片。 我无法弄清楚这一点。

2 个答案:

答案 0 :(得分:1)

问题解决了:

public function getProfilePictureAttribute()
{
    $path = 'users/' . $this->id . '/picture.png';
    if (File::exists(realpath(public_path() . $path))) {
        return $path;
    } else {
        return $this->picture_default;
    }
}

答案 1 :(得分:0)

我认为你的文件路径问题,但需要使用绝对路径

$absulate_path = 'your absulate path';
// E:/xampp/htdocs/test_projuect      
$path = 'users/' . $this->id . '/picture.png';
 if (file_exists($absulate_path.'/'.$path)) {
   /* do your code
 } else {
       echo "file not exit";
 }

我认为这会对你有所帮助