我无法使用PHP将文件上传到localhost。我创建了简单的html表单和php脚本。但是我收到这些错误消息。
'import.html'
<html>
<body>
<form action="import.php" method="POST" enctype="multipart/form-data">
<p>
<label for="file">Choose import.xml</label><br/>
<input type="file" name="import" id="import" /></p>
<p><input type="submit" name="submit" value="Submit" /></p>
</form>
<body>
</html>
'import.php'
<?php
if ($_FILES["import"]["error"] > 0)
{
echo "Return Code: " . $_FILES["import"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["import"]["name"] . "<br />";
echo "Type: " . $_FILES["import"]["type"] . "<br />";
echo "Size: " . ($_FILES["import"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["import"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["import"]["name"]))
{
echo $_FILES["import"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["import"]["tmp_name"],
"upload/" . $_FILES["import"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["import"]["name"];
}
}
?>
错误讯息:
警告:move_uploaded_file(upload / import.xml) [function.move-uploaded-file]:无法打开流:没有这样的文件或 第20行的C:\ xampp \ htdocs \ teecom \ admin \ import.php中的目录
警告:move_uploaded_file()[function.move-uploaded-file]:无法执行 将'C:\ Windows \ Temp \ phpD02C.tmp'移到'upload / import.xml'中 第20行的C:\ xampp \ htdocs \ teecom \ admin \ import.php存储于: 上传/ import.xml
答案 0 :(得分:2)
看起来你正在使用Windows。
如果可能,我会将目标路径从相对路径更改为绝对路径。例如:
move_uploaded_file($_FILES["import"]["tmp_name"],
"C:/upload/" . $_FILES["import"]["name"]);
或尝试路径:
$_SERVER['DOCUMENT_ROOT'] . '/upload/' . $_FILES['import']['name']
在尝试上传之前,首先尝试创建C:\ upload \或C:\ xampp \ htdocs \ upload \目录。
答案 1 :(得分:1)
嗯,根据您的localhost目录,您可以尝试:
if (!file_exists("teecom/upload"))
{
mkdir("teecom/upload", 0777, true);
}
if (file_exists("teecom/upload/" . $_FILES["import"]["name"]))
{
echo $_FILES["import"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["import"]["tmp_name"],
"teecom/upload/" . $_FILES["import"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["import"]["name"];
}
答案 2 :(得分:0)
您的文件显然没有上传到move_uploaded_file
函数应该移动它的临时文件夹。有很多原因可能导致最常见的原因是您没有对PHP正在使用的临时文件夹的写权限。
答案 3 :(得分:0)
这是旧的,但对于将来遇到此问题的人,我为localhost(wamp)所做的就是单击服务器图标,转到PHP,PHP设置,然后选择文件上载。
这对我有用。