用于将文件上载到远程服务器的php脚本

时间:2013-09-07 17:15:31

标签: php

我是PHP脚本的新手,所以我的这些问题可能是愚蠢的过于简单,所以请原谅我。

现在我有代码,我想用它来发送文件到我服务器中的set文件夹。

我的代码如下所示:

    <?

$_SESSION['directory'] = $_POST['directory'];
$uploaddir = './'.$_GET["dir"];
$file = basename($_FILES['file']['name']);
$uploadfile = $uploaddir . $file;

print_r($_FILES);

if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
        echo "http://ipaddress/images/{$file}/";
}
else
{
    echo "Didn't Work!!!!";
}

&GT;

我的代码中的URL调用如下所示:

http://server.foo.com/folder/uploadToDirectory.php?dir=selected_folder

然而,当我运行我的代码时,文件只会被发送到目录的根目录,就像我进行此调用一样:

http://server.foo.com/folder/uploadToDirectory.php

任何人都可以看到为什么会发生这种情况的原因吗?

如果我想将文件保存在目录中,我需要一个单独的脚本,如果我想将其上传到我的服务器的根目录。我如何将我的两个脚本合并为一个,如果我已经像我已经展示的那样使用它们,我需要做什么电话。

我的其他脚本如下所示:

<?

    $file = basename($_FILES['file']['name']);
    $uploadfile = $uploaddir . $file;

    print_r($_FILES);

    if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
            echo "http://ipaddress/images/{$file}/";
    }
    else
    {
        echo "Didn't Work!!!!";
    }

?>

请注意,我知道这是一种可怕的做事方式。我知道。但这是我将要使用的代码。没有终端客户会看到这一点。所以,如果你能帮助我提供的代码,我将非常感激。

1 个答案:

答案 0 :(得分:0)

至少,我认为您需要$uploaddir$uploadfile之间的目录分隔符,所以请尝试更改:

$uploadfile = $uploaddir . $file;

$uploadfile = $uploaddir . '/' . $file;

还要确保清理$uploaddir,因为../../some_dir之类的内容可能会让我上传到任意目录。上传扩展名为.php的文件可以让我将PHP代码上传到您的服务器并运行它,所以请注意其中的一些问题。