将文件上传到服务器的完整路径

时间:2014-04-21 19:14:05

标签: php

我在上传文件时遇到错误

我创建了上传文件的功能。问题是我从不同的文件和不同的文件夹中调用它,这意味着我的图像文件夹的路径正在改变。 因为我正在使用完整的路径。

(我的文件夹名为 - " images / usersFiles")

Warning: move_uploaded_file(http://localhost/dogger/images/usersFiles/13981072220-1.jpg) [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections in C:\Program Files (x86)\wamp\www\dogger\func\func.global.php on line 127

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Program Files (x86)\wamp\tmp\php9D89.tmp' to 'http://localhost/dogger/images/usersFiles/13981072220-1.jpg' in C:\Program Files (x86)\wamp\www\dogger\func\func.global.php on line 127

我在本地计算机上运行代码:

if ($_SERVER['REMOTE_ADDR'] == "127.0.0.1")
    $usersFiles = 'http://localhost/dogger/images/usersFiles/';  
else
    $usersFiles = '/home/israelig/public_html/sites/dogger/images/usersFiles/';  


if (move_uploaded_file($files['file']['tmp_name'][$i], $usersFiles.$files['file']['name'][$i]))

3 个答案:

答案 0 :(得分:0)

正如错误消息所示,move_uploaded_file不支持写入HTTP。您必须使用本地文件路径,而不是URL。

答案 1 :(得分:0)

使用没有http的绝对路径,就像这样(我不使用Windows并且可能会出错):

  

C:\ Program Files(x86)\ wamp \ www \ dogger \ userFiles

您可以使用以下命令生成此路径:

realpath(dir(__FILE__) . '/../userFiles')

其中 FILE 包含当前脚本的路径

答案 2 :(得分:0)

试试这种方式,

if (move_uploaded_file($files['file']['tmp_name'], '/path/to/userFiles/'.$files['file']['name']))
{
    echo "File uploaded.";
    echo "<img src='/path/to/userFiles/{$files['file']['name']}' />";
}

修改

您的目录结构:

C:\Program Files (x86)\
|-----------------------wamp\
                           |--www\
                                |---dogger\   <-- Assuming here is your upload.php which will be uploading image.
                                      |-----images\
                                               |-----usersFiles\    <-- Image will be uploaded here.

<强>瓦帕\ WWW \多格\ upload.php的

<?php
    if (move_uploaded_file($files['file']['tmp_name'], './images/usersFiles/'.$files['file']['name']))
    {
        echo "File uploaded.<br/>";
        echo "<img src='./images/usersFiles/{$files['file']['name']}' />"; //displaying image using relative path.
        //OR
        echo "<img src='http://localhost/dogger/images/usersFiles/{$files['file']['name']}' />"; //displaying image using absolute path
    }

?>