Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Symfony 4,fopen-不工作相对路径_Php_File_Symfony - Fatal编程技术网

PHP Symfony 4,fopen-不工作相对路径

PHP Symfony 4,fopen-不工作相对路径,php,file,symfony,Php,File,Symfony,Symfony 4 我想打开JPEG文件并获取其内容。我正在调用文件中的函数 myProject/src/DataFixtures/UserFixtures.php 我得到一个找不到的错误文件。但是在src/DataFixtures/avatars/my_avatar.jpeg位置有一个文件。我不知道为什么相对路径不起作用。将url更改为my_avatar.jpeg,因为它与php文件位于同一文件夹中 改变这个 $avatar = stream_get_contents(fopen('src/D

Symfony 4

我想打开JPEG文件并获取其内容。我正在调用文件中的函数 myProject/src/DataFixtures/UserFixtures.php


我得到一个找不到的错误文件。但是在src/DataFixtures/avatars/my_avatar.jpeg位置有一个文件。我不知道为什么相对路径不起作用。

将url更改为my_avatar.jpeg,因为它与php文件位于同一文件夹中 改变这个

$avatar = stream_get_contents(fopen('src/DataFixtures/avatars/my_avatar.jpeg', 'rb'));


如果您不打算使用上述目录之外的那些文件,那么以下代码段应该可以:

$avatar = stream_get_contents(fopen(__DIR__ . '/avatars/my_avatar.jpeg', 'rb'));

但是,如果您计划从其他地方访问这些文件,您应该考虑将该目录全局定义或以某种方式注入。例如,您可以在parameters.yml下定义该路径,然后将其值作为容器参数获取。

很可能是因为fopen在工作目录中启动,这将是fodler public。。。因此,你需要先离开公共场所。。所以“../src/DataFixtures/avatars/my_avatar.jpeg”应该更有效,这是因为您使用的是相对路径。如果您在文件myProject/src/DataFixtures/UserFixtures.php中,并使用src/DataFixtures/avatars/my_avatar.jpeg路径调用fopen,您将尝试打开的是myProject/src/DataFixtures/src/DataFixtures/avatars/my_avatar.jpeg。您可以通过在某种配置文件中定义项目根目录,从根目录为其提供完整路径,或者添加回溯.././src/Data…谢谢。它起作用了。这是这个话题中唯一对我有效的解决方案。
$avatar = stream_get_contents(fopen('my_avatar.jpeg', 'rb'));`
$avatar = stream_get_contents(fopen(__DIR__ . '/avatars/my_avatar.jpeg', 'rb'));