当前位置: 代码迷 >> PHP >> php文件上传总是失败,该如何处理
  详细解决方案

php文件上传总是失败,该如何处理

热度:395   发布时间:2016-04-28 20:19:05.0
php文件上传总是失败
http://www.w3school.com.cn/php/php_file_upload.asp
我看着这个例子做,但是当选中一个文件,点击上传的时候却出现Error 6 ,我在php.ini中的将 upload_tmp_dir 启动设置为 upload_tmp_dir ="C:\WX" 点击上传却显示Invalid file,同样无法上传文件,请指点。

------解决方案--------------------
一般的情况,是上传保存的目录不可写造成的。你要好好设置一下
------解决方案--------------------
index.html代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
<form action="upload_file.php" 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>



upload_file.php代码:

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>


------解决方案--------------------
不用修改php.ini 里面的东西,把它还原回去后再试试。
------解决方案--------------------
引用:
Quote: 引用:

index.html代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
<form action="upload_file.php" 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>



upload_file.php代码:

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>



$_FILES["file"]
打印一下这个变量看看什么内容再判断

print_r($_FILES["file"]);exit;

------解决方案--------------------
Error: 6
表示上传文件不存在

你最好将 upload_tmp_dir 设置到 D: 即以后的驱动器中
因为 C: 驱动器一般都设置为禁止匿名用户的文件操作
------解决方案--------------------
$_FILES['file']['error']
其值为 0,没有错误发生,文件上传成功。 

其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 

其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 

其值为 3,文件只有部分被上传。 

其值为 4,没有文件被上传。 

其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。 

其值为 7,文件写入失败。PHP 5.1.0 引进。 

看报错的话,应该是临时文件夹没有写权限或者不存在

------解决方案--------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
 
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
  相关解决方案