【发布时间】:2012-07-11 14:39:35
【问题描述】:
我无法使用 PHP 将文件上传到本地主机。我创建了简单的 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
【问题讨论】:
-
所以它会告诉你问题出在哪里。您是否质疑该目录存在且可写?
-
我猜是(a)您的网络服务器在上传目录中没有写入权限,或者(b)您需要为上传目录使用绝对路径而不是
"upload/"跨度> -
C:\xampp\htdocs\teecom\admin\upload\ 目录是否存在??
-
临时目录为:C:\Windows\Temp\phpD02C.tmp。但是,我认为 apache 没有读取/写入该目录的权限。我找不到可以更改该目录的位置。
-
嗯,C:\xampp\htdocs\teecom\admin\upload\ 存在。 C:\windows\temp\ 也是如此。但是,我认为问题出在临时目录 C:\windows\temp\ 上。我认为我无权访问此目录。这就是为什么我想改变它。我已经更改了我能找到的所有 php.ini 文件。但它仍然上传到这个目录