我需要一些建议和指导。 我正在尝试使用链接将图像上传到文件夹中。我无法上传图片。 我正在尝试这段代码。这显示错误消息:
[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>
有可能吗?
答案 0 :(得分:2)
移动文件的目的地需要是服务器的绝对路径,即
move_uploaded_file( $_FILES["file"]["tmp_name"], $_SERVER['DOCUMENT_ROOT'] ."/uploads/" . $_FILES["file"]["name"]);
答案 1 :(得分:1)
您正在为file_exists
和move_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。