无法访问 Symfony 的 var 目录中的上传

Uploads in Symfony's var directory not accessible

我正在尝试将文件上传到 'var' 目录(成功)。但是当我想从 'var' 中获取这个文件时,我只能观察到 No route found for "GET /var/uploads/images/....

结构

 - app
 - bin
 - src
 - var
    - cache
    - logs
    - uploads
       - images
 - vendor
 - web

为了保存我使用的文件:'%kernel.project_dir%/var/uploads/images'

为了取文件:'/var/uploads/images/' . $fileName; 我的错误在哪里?

P.S。此外,我尝试在我的 docker-compose 文件中使用卷(我正在使用 docker),如下所示: - ./data/cabinet/uploads/images:/data/www/cabinet/var/uploads/images 而且,不幸的是,没有一个文件未复制到此目录。怎么了?

谢谢!

由于文档根目录指向 web 目录,因此不可能访问路径 ../var。要么将上传存储在 web 目录中,要么在其中创建指向 var/data/uploads:

的符号链接
// since I don't know your path tree inside the container
// I assume whole application is installed inside /var/www/html
// and this is the default working directory
docker-compose exec YOUR_CONTAINER_NAME \
ln -rs /var/www/html/var/data web/var

请记住,如果您使用的是 Apache 网络服务器,则必须启用 FollowSymLinks 选项,但很可能是这样。

关于第二个问题,多半是你映射了一个无效的目录,我猜应该是:

// yet again I assume whole application is inside the /var/www/html
./data/cabinet/uploads/images:/var/www/html/data/cabinet/uploads/images

这是某种制作吗?如果不是并且这只是一个正在进行的工作,那么您应该将整个本地目录映射为容器卷。这是通常在开发模式下完成的方式,因此映射为:

.:/var/www/html