上传文件时出错
我创建了上传文件的功能。问题是,我从不同的文件和文件夹调用它,这意味着我到图像文件夹的路径正在更改。正因为如此,我才使用完整路径。
(我确实有一个名为"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
}
?>