1

我需要一些建议和指导方针。我正在尝试使用链接将图像上传到文件夹中。而且我无法上传图片。我正在尝试这段代码。这显示错误消息:

[function.move-uploaded-file]:打开流失败:HTTP wrapper 不支持可写连接

<?php

  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {

    if (file_exists("http://localhost.myimage.com/uploads/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "http://localhost.myimage.com/uploads/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }

?>
<html>
<body>

<form action="" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

可能吗 ?

4

3 回答 3

2

移动文件的目的地需要是服务器的绝对路径,即

move_uploaded_file( $_FILES["file"]["tmp_name"], $_SERVER['DOCUMENT_ROOT'] ."/uploads/" . $_FILES["file"]["name"]);
于 2012-05-12T17:08:16.773 回答
1

您正在提供file_exists一个move_uploaded_fileURL。尝试在硬盘驱动器上提供文件。改变:

file_exists("http://localhost.myimage.com/uploads/" . $_FILES["file"]["name"])

file_exists($_SERVER['DOCUMENT_ROOT'] . "uploads/" . $_FILES["file"]["name"])

并且类似于move_uploaded_file因为那是错误的起源。

于 2012-05-12T17:05:40.857 回答
0

不,这是不可能的。

您尝试将上传的文件存储在错误的目的地。

我假设您拥有“http://localhost.myimage.com/uploads/”并且不想将文件存储在服务器中的“/uploads/”下。

如果您的项目安装在 /var/www/my_prj/ 下

并且您的上传位于 /var/www/my_prj/uploads 下,那么您的代码应如下所示:

move_uploaded_file($_FILES["file"]["tmp_name"],
      "/uploads/" . $_FILES["file"]["name"]);

这仅适用于“/var/www/my_prj/”是您的 apache 配置主机的 DocumentRoot 时。

于 2012-05-12T17:07:31.137 回答