大家好,我在自学的生活跟着书上做练习,现在遇到一点问题,请各位指点一下。HTML代码如下:
<html>
<head><title>upload</title></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><body>
<!-- 表单的enctype属性必须制定为multipart/form-data -->
<form enctype="multipart/form-data" action="3-7.php" method="post">
    <!-- input的type属性指定为file,name属性的值会在php程序的$_files数组中用到 -->
    上传此文件:<input name="myfile" type="file" /><br/>
    <input type="submit" value="提交上传" />
</form>
</body>
</html>PHP代码如下:<?php
header("Content-type:text/html;charset=utf-8");
//将文件移至武器的根目录的upload目录下,uupload目录要事先建立好
$upload_path = $_SERVER['document_root']."/upload/";
$dest_file = $upload_path.basename($_FILES['myfile']['name']);//将临时文件移至目标文件夹
if(move_uploaded_file($_FILES['myfile']['tmp_name'],$dest_file))
{
    echo "文件已上传至服务器根目录的upload目录下";
}
else 
{
   echo "文件上传时发生了一个错误".$_FILES['myfile']['error'];
}
?>
运行后出错,提示:Notice: Undefined index: document_root in /Applications/XAMPP/xamppfiles/htdocs/test/3-7.php on line 4Warning: move_uploaded_file(/upload/1.jpg): failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/test/3-7.php on line 8Warning: move_uploaded_file(): Unable to move '/Applications/XAMPP/xamppfiles/temp/phpWd4gmD' to '/upload/1.jpg' in /Applications/XAMPP/xamppfiles/htdocs/test/3-7.php on line 8
文件上传时发生了一个错误0
第一个是警告,提示没有定义document_root。这个是不是可以忽略,直接不显示notice?
后面2个我就不明白是为什么呢。请各位帮忙指点一下。

解决方案 »

  1.   

    这些都是一个问题造成的,document_root 没有,所以移动的时候提示失败,document_root 应该大写
      

  2.   

    谢谢你,第一个警告已经不出现了。但是后面2个错误还是有的。Warning: move_uploaded_file(/Applications/XAMPP/xamppfiles/htdocs/upload/1.jpg): failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/test/3-7.php on line 8Warning: move_uploaded_file(): Unable to move '/Applications/XAMPP/xamppfiles/temp/php7yZinE' to '/Applications/XAMPP/xamppfiles/htdocs/upload/1.jpg' in /Applications/XAMPP/xamppfiles/htdocs/test/3-7.php on line 8
    文件上传时发生了一个错误0我已经在test根目录下手工创建了upload的文件夹了。
      

  3.   

    $_SERVER['document_root']
    应为 $_SERVER['DOCUMENT_ROOT']
    php 的变量名是区分大小写的
    如果你使用了 $_SERVER['DOCUMENT_ROOT'],就必须下确定 $_SERVER['DOCUMENT_ROOT'] 有值(虚拟主机大多无该值,或值是错的)#2第一条错误信息
    Warning: move_uploaded_file(/Applications/XAMPP/xamppfiles/htdocs/upload/1.jpg): failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/test/3-7.php on line 8
    是说你的 upload 目录没有写权限
      

  4.   

    你好,请问一下“就必须下确定 $_SERVER['DOCUMENT_ROOT'] 有值”,这个要怎么操作?#2第一条错误信息
    Warning: move_uploaded_file(/Applications/XAMPP/xamppfiles/htdocs/upload/1.jpg): failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/test/3-7.php on line 8
    是说你的 upload 目录没有写权限
    你好,请问一下没有权限应该怎么授权呢?
      

  5.   

    你好,请问一下“就必须下确定 $_SERVER['DOCUMENT_ROOT'] 有值”,这个要怎么操作?#2第一条错误信息
    Warning: move_uploaded_file(/Applications/XAMPP/xamppfiles/htdocs/upload/1.jpg): failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/test/3-7.php on line 8
    是说你的 upload 目录没有写权限
    你好,请问一下没有权限应该怎么授权呢?
    已经解决了,设置文件夹的权限即可,谢谢各位啊!