Symfony2-如何在捆绑包之外设置上载路径?

Symfony2-如何在捆绑包之外设置上载路径?,symfony,file-upload,Symfony,File Upload,我是新来的整个启动现场的事情,我试图修复我的文件上传,它似乎是上传包中的文件。我需要将文件上传到包外的public_html文件夹 下面是我的函数我需要更改什么,以便上传路径位于symfony项目文件夹之外 服务器文件夹设置: /etc/ /symfony project folder /public_ftp/ /public_html/ <--- this is where I want it to go public function getUploadDir() { re

我是新来的整个启动现场的事情,我试图修复我的文件上传,它似乎是上传包中的文件。我需要将文件上传到包外的public_html文件夹

下面是我的函数我需要更改什么,以便上传路径位于symfony项目文件夹之外

服务器文件夹设置:

/etc/
/symfony project folder
/public_ftp/
/public_html/ <--- this is where I want it to go


public function getUploadDir()
{
    return 'images/';
}

public function getUploadRootDir()
{
    return __DIR__ . '/../../../../web/' . $this->getUploadDir();
}

public function getWebPath()
{
    return null === $this->image ? null : $this->getUploadDir() . '/' . $this->image;
}

public function getAbsolutePath()
{
    return null === $this->image ? null : $this->getUploadRootDir() . '/' . $this->image;
}
/etc/
/symfony项目文件夹
/公共图书馆/
/public_html/getUploadDir();
}
公共函数getWebPath()
{
返回null==$this->image?null:$this->getUploadDir()./'.$this->image;
}
公共函数getAbsolutePath()
{
返回null==$this->image?null:$this->getUploadRootDir()./。$this->image;
}

将您的
getUploadRootDir
更改为:

public function getUploadRootDir()
{
    return __DIR__ . '/../../../../../public_html/' . $this->getUploadDir();
}
public function getUploadDir()
{
    return '';
}
这将把你的图像放入
public\u html/images/
,如果你想让它们直接进入
public\u html
,那么也将
getUploadDir
更新为:

public function getUploadRootDir()
{
    return __DIR__ . '/../../../../../public_html/' . $this->getUploadDir();
}
public function getUploadDir()
{
    return '';
}

应该已经上传到
web/images/
,它不在您的
src
文件夹中。确保web服务器具有写入该目录的正确权限。是否将文件移动到该目录?我是从文档中得到的:
$this->getFile()->move($this->getUploadRootDir(),$this->getFile()->getClientOriginalName())正确,但我希望将其从symfony项目文件夹完全移到public_html文件夹中。原始路径仍在symfony项目文件夹中。更新的问题。我现在明白了。我想你的意思是你想把它们从包里拿出来,而不是从整个项目中拿出来。我已经发布了答案。宾果!现在你能给我解释一下它是怎么工作的吗?文件夹目标从何处开始?@esteemed.squire
\uuuuu DIR\uuuu
是包含当前PHP脚本的目录,该脚本位于捆绑包中的某个位置,您需要遍历树上的多个文件夹才能从Symfony项目文件夹中取出。好的,但是您怎么知道5'/..'可以工作?我试图理解你是如何计算的。我只是在现有的4个文件夹中添加了一组
。/
,因为以前的参考文件夹
web
太深了一层(它在你的Symfony项目文件夹中,
public\u html
更高一层).我想如果我知道它从哪里开始,并清点文件夹,会更有意义。我在symfony项目文件夹中,然后你有一个web文件夹,它在包之外。所以你有4个/。/只是不明白
\uuuu DIR\uuuu
在哪里,如果这是起点的话。