2014-04-24 41 views
1

我是新来的整个启动生活的事情,我试图修复我的文件上传,它似乎是上传文件中的文件。我需要将文件上传到包之外的public_html文件夹。Symfony2 - 你如何设置捆绑之外的上传路径?

下面是我的功能我需要更改什么,以便uploadpath不在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; 
} 
+0

这应该已经是加载到你的'src'文件夹之外的'web/images /'。确保Web服务器具有写入该目录的正确权限 – Paulpro

+0

您是否在那里移动文件?我从文档中获得了这个:'$ this-> getFile() - > move($ this-> getUploadRootDir(),$ this-> getFile() - > getClientOriginalName());' – Paulpro

+0

对,但我期待移动它从symfony项目文件夹中彻底删除到public_html文件夹中。原始路径仍然在symfony项目文件夹内。更新的问题。 –

回答

1

更改getUploadRootDir到:

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

这将会把您的图像放入public_html/images/,如果直接在public_html希望他们随后也更新getUploadDir到:

public function getUploadDir() 
{ 
    return ''; 
} 
+0

宾果!现在你能向我解释那是如何工作的吗? /../../../../../?文件夹目的地从哪里开始? –

+0

@ esteemed.squire'__DIR__'是包含当前PHP脚本的目录,它位于您的包中的某个位置,并且您需要遍历树的几个文件夹才能离开Symfony项目文件夹。 – Paulpro

+0

好的,但你怎么知道5'/../'会工作?即时通讯试图了解你如何计算这个。 –