在move_uploaded_file()php中使用href上传图像文件

时间:2012-05-12 17:00:04

标签: php

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

  

[function.move-uploaded-file]:无法打开流:HTTP包装器不支持可写连接

<?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>

有可能吗?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您正在为file_existsmove_uploaded_file提供网址。尝试在硬盘驱动器上提供文件。变化:

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

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

move_uploaded_file类似,因为那是错误发生的地方。

答案 2 :(得分: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。

相关问题