0

我有一个问题,我不知道如何解决。让我解释一下...

目录结构:

-/public_html/lab/
-/public_html/lab/upload.php
-/public_html/lab/plugins/

我真的是php + ftp的新手,但我认为FTP不使用“绝对根路径”(/home/user/public_html/),而是根据相关用户使用“绝对用户路径”(/ public_html),对吧?

好吧,在upload.php我的代码中,FTP 类将文件临时存储在upload.php 所在的同一文件夹(/public_html/lab/)中,然后尝试将其移动到/public_html/lab/plugins/文件夹中。

FTP 类接收您要移动文件的路径。但是,我不想通过绝对路径,我想避免这种情况:

ftp->move('the-file.zip', '/public_html/lab/plugins/');

我想做这样的事情:

ftp->move('the-file.zip', '../plugins/');

但是上面的代码看起来是无效的。那么,我怎样才能重现这个结果呢?

4

2 回答 2

3

您可以使用 php 相对路径来将文件移动到您的 FTP 位置

$_SERVER['DOCUMENT_ROOT'] ."/lab/plugins/" ;
于 2012-12-17T10:49:28.783 回答
1

考虑通过upload.php 中的move_uploaded_file移动文件,而不是为两个不同主机之间的通信而设计的FTP :

move_uploaded_file($_FILES['uploaded']['tmp_name'],'./plugins/'.$_FILES['uploaded']['name']);

通过 PHP 脚本上传文件后,临时文件将在 $_FILES[$inputFieldName]['tmp_name'] 下的_FILES 超全局中可用。如果您使用我给出的示例,请务必在之前清除“名称”属性,因为它会允许客户端注入并在应用程序中留下巨大的安全漏洞。

于 2012-12-16T21:42:05.000 回答