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


full path to upload files to server

上传文件时出错

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

(我确实有一个名为"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]))

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

使用没有http的绝对路径,如下所示(我不使用windows,可能会出错):

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

您可以使用生成此路径

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

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

试试这种方法,

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.

wamp''www''dogger''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
    }
?>