当文件名包含特殊字符时,Laravel File Exists功能不起作用

时间:2017-01-03 10:03:49

标签: php image laravel-5.2 special-characters

我的图像名称为 The-seven-Churches-of-the-Revelation-& -Istanbul.jpg

但是,文件名以这种格式保存在数据库中;的的-七教会的最-Revelation-%26-Istanbul.jpg

我使用以下代码,同时忽略空间

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
</plugin>

结果是

  

找不到文件

如何处理文件名中的特殊字符?

2 个答案:

答案 0 :(得分:1)

您可能遇到了网址编码值问题,因此urldecode可能是您的朋友。 You can see the docs for this here

$cover = urldecode($cover);

if (!\Illuminate\Support\Facades\File::exists(base_path($cover))) :
            echo "file not found";
endif

答案 1 :(得分:0)

请在下面查看2中的任何一个 这工作正常。我检查过这个。

$ file = base_path()。'/ uploads / The-seven-Churches-of-the-Revelation-&amp; -Istanbul.jpg';

        if(file_exists($file)){
            echo  "File Found";
        }else{
            echo "File Not Found";
        }

$file =  base_path().'/uploads/The-seven-Churches-of-the-Revelation-&-Istanbul.jpg';

        if(!File::exists($file)){
            echo "File Found";
        }else{
            echo "File Not Found";
         }