各位大虾帮忙看一下。我试了N次上传,格式都显示出来了。也显示出来了上传成功,就是不能上传在文件夹中!
代码如下我要上传到指定的文件夹,就是upload中。! pic是文件域名称 phpbbs是我建立的站点!是同级目录upload
<?php
//将上传函数封装成函数  
function phpbbs($pic,$path="../upload/")
//$file 文件名 $PATH网站存放图片目录相对路径
{
//获取图片扩展名 
//strrchr获取.的字符串最后出现位置的数组
//用substr获取该数组第二个元素
$fileExt=substr(strrchr($_FILES[$file]["name"],"."),1);
//定义系统允许扩展的类型
$fileType=array("image/gif","image/pjpeg","image/bmp");
//判断上传的文件是否符合指定的类型
if(!in_array($_FILES[$file]["type"],$fileType))
{
echo "对不起,系统不支持该格式的文件上传";
}
//判断元素上传有无异常
if($_FILES[$file]["error"]!=0)
{
echo "上传异常";
}
//获取目标路径
$targetDir=$path;
//获取新的文件名
$targerName=date("Ymd").time().".".$fileExt;
$realFile=$targetDir.$targerName;
echo $realFile;
die();
//开始上传
//判断是否存在该函数 move_uploaded_file
if(function_exists("move_uploaded_file"))
{
move_uploaded_file($_FILES[$file]["tmp_name"],$realFile);
}
echo"上传成功";

}
if($_POST["Submit"]!="")
{
upload("pic");
}
?>

解决方案 »

  1.   

    $path指定绝对路径试试,还不行就看看upload的权限,是不是只读,所有者是不是apache用户.
    另外你的几个异常只是echo,怎么没有退出?
      

  2.   

    <?php 
    //将上传函数封装成函数  
    function phpbbs($pic,$path="../upload/") 
    //$file 文件名 $PATH网站存放图片目录相对路径 

    //获取图片扩展名 
    //strrchr获取.的字符串最后出现位置的数组 
    //用substr获取该数组第二个元素 
    $fileExt=substr(strrchr($_FILES[$file]["name"],"."),1); 
    //定义系统允许扩展的类型 
    $fileType=array("image/gif","image/pjpeg","image/bmp"); 
    //判断上传的文件是否符合指定的类型 
    if(!in_array($_FILES[$file]["type"],$fileType)) 

    echo "对不起,系统不支持该格式的文件上传";
    exit(); 

    //判断元素上传有无异常 
    if($_FILES[$file]["error"]!=0) 

    echo "上传异常";
    exit();

    //获取目标路径 
    $targetDir=$path; 
    //获取新的文件名 
    $targerName=date("Ymd").time().".".$fileExt; 
    $realFile=$targetDir.$targerName; //开始上传 
    //判断是否存在该函数 move_uploaded_file 
    if(function_exists("move_uploaded_file")) 

    if(move_uploaded_file($_FILES[$file]["tmp_name"],$realFile))
    {
    echo"上传成功";
    }
    else{
    echo "上传失败";
    }


    if($_POST["Submit"]!="") 

    //upload("pic");
    phpbbs("pic");


    ?>
      

  3.   

      楼上的我复制看了一下。不行啊。
    <?php
    //将上传函数封装成函数 //upload是你建立的网站名
    function upload($file,$path="../upload/")
    //$file 文件名 $PATH网站存放图片目录相对路径
    {
    //获取图片扩展名 
    //strrchr获取.的字符串最后出现位置的数组
    //用substr获取该数组第二个元素
    $fileExt=substr(strrchr($_FILES[$file]["name"],"."),1);
    //定义系统允许扩展的类型
    $fileType=array("image/gif","image/pjpeg","image/bmp");
    //判断上传的文件是否符合指定的类型
    if(!in_array($_FILES[$file]["type"],$fileType))
    {
    echo "对不起,系统不支持该格式的文件上传";
    }
    //判断元素上传有无异常
    if($_FILES[$file]["error"]!=0)
    {
    echo "上传异常";
    }
    //获取目标路径
    $targetDir=$path;
    //获取新的文件名
    $targerName=date("Ymd").time().".".$fileExt;
    $realFile=$targetDir.$targerName;
    echo $realFile;
    die();
    //开始上传
    //判断是否存在该函数 move_uploaded_file
    if(function_exists("move_uploaded_file"))
    {
    move_uploaded_file($_FILES[$file]["tmp_name"],$realFile);
    }
    echo"上传成功";

    }
    if($_POST["Submit"]!="")
    {
    upload("file");
    }
    ?> 这个是原来的代码。但是修改之后不行啊,另外这个上传时可以。但还是上传不到文件夹
      

  4.   

    写出你的机器OS,绝对路径配置,权限.upload目录的所有者.
    把你改完的文件列出来,你写的程序半路加个die(),不就退出了吗?
      

  5.   

    linux下需要权限。
    chmod -R 777 {你的上传目录}
      

  6.   


    echo $realFile;
    die(); //<---------------你这是干嘛?
    //开始上传 
      

  7.   

       <?php
    //将上传函数封装成函数 //inserCate是我主机建立的网站名 
    function inserCate($pic,$path="../upload/")  //pic是文件域的署名
    //$file 文件名 $PATH网站存放图片目录相对路径
    {
    //获取图片扩展名 
    //strrchr获取.的字符串最后出现位置的数组
    //用substr获取该数组第二个元素
    $fileExt=substr(strrchr($_FILES[$pic]["name"],"."),1);
    //定义系统允许扩展的类型
    $fileType=array("image/gif","image/pjpeg","image/bmp");
    //判断上传的文件是否符合指定的类型
    if(!in_array($_FILES[$pic]["type"],$fileType))
    {
    echo "对不起,系统不支持该格式的文件上传";
    }
    //判断元素上传有无异常
    if($_FILES[$pic]["error"]!=0)
    {
    echo "上传异常";
    }
    //获取目标路径
    $targetDir=$path;
    //获取新的文件名
    $targerName=date("Ymd").time().".".$fileExt;
    $realFile=$targetDir.$targerName;
    echo $realFile;
    //开始上传
    //判断是否存在该函数 move_uploaded_file
    if(function_exists("move_uploaded_file"))
    {
    move_uploaded_file($_FILES[$file]["tmp_name"],$realFile);
    }
    echo"上传成功";

    }
    if($_POST["Submit"]!="")
    {
    inserCate("file");
    }
    ?>
      这个是我改的,上传成功了。但是图片进不去,upload权限是只读,上传的名字什么都可以可以数据库也就是localhost/phpmyadmin
      

  8.   

    <?php
    //将上传函数封装成函数 //upload是你建立的网站名
    function upload($file,$path="../upload/")
    //$file 文件名 $PATH网站存放图片目录相对路径
    {
    //获取图片扩展名 
    //strrchr获取.的字符串最后出现位置的数组
    //用substr获取该数组第二个元素
    $fileExt=substr(strrchr($_FILES[$file]["name"],"."),1);
    //定义系统允许扩展的类型
    $fileType=array("image/gif","image/pjpeg","image/bmp");
    //判断上传的文件是否符合指定的类型
    if(!in_array($_FILES[$file]["type"],$fileType))
    {
    echo "对不起,系统不支持该格式的文件上传";
    }
    //判断元素上传有无异常
    if($_FILES[$file]["error"]!=0)
    {
    echo "上传异常";
    }
    //获取目标路径
    $targetDir=$path;
    //获取新的文件名
    $targerName=date("Ymd").time().".".$fileExt;
    $realFile=$targetDir.$targerName;
    echo $realFile;
    die();
    //开始上传
    //判断是否存在该函数 move_uploaded_file
    if(function_exists("move_uploaded_file"))
    {
    move_uploaded_file($_FILES[$file]["tmp_name"],$realFile);
    }
    echo"上传成功";

    }
    if($_POST["Submit"]!="")
    {
    upload("file");
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head><body>
    <label></label>
    <label></label>
    <form action="upload.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
      <label>
      <input type="file" name="file" />
      </label>
      <input type="submit" name="Submit" value="上传"  />
    </form>
    </body>
    </html> 看这个吧。这个是整张页面的
      

  9.   

    楼上发错了。不好意思
    <?php
    //将上传函数封装成函数 //upload是你建立的网站名
    function inserCate($pic,$path="../upload/")
    //$file 文件名 $PATH网站存放图片目录相对路径
    {
    //获取图片扩展名 
    //strrchr获取.的字符串最后出现位置的数组
    //用substr获取该数组第二个元素
    $fileExt=substr(strrchr($_FILES[$pic]["name"],"."),1);
    //定义系统允许扩展的类型
    $fileType=array("image/gif","image/pjpeg","image/bmp");
    //判断上传的文件是否符合指定的类型
    if(!in_array($_FILES[$pic]["type"],$fileType))
    {
    echo "对不起,系统不支持该格式的文件上传";
    }
    //判断元素上传有无异常
    if($_FILES[$pic]["error"]!=0)
    {
    echo "上传异常";
    }
    //获取目标路径
    $targetDir=$path;
    //获取新的文件名
    $targerName=date("Ymd").time().".".$fileExt;
    $realFile=$targetDir.$targerName;
    echo $realFile;
    //开始上传
    //判断是否存在该函数 move_uploaded_file
    if(function_exists("move_uploaded_file"))
    {
    move_uploaded_file($_FILES[$file]["tmp_name"],$realFile);
    }
    echo"上传成功";

    }
    if($_POST["Submit"]!="")
    {
    inserCate("file");
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>版块添加</title>
    <link href="../css/top.css" rel="stylesheet" type="text/css" />
    </head><body>
    <form action="inserDeal.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
      <table width="550" border="1" align="center" cellpadding="1" cellspacing="0">
        <tr>
          <td height="39" colspan="2" align="center" class="black">版块添加页面</td>
        </tr>
        <tr>
          <td width="30%" height="25" class="black1">版块图片</td>
          <td width="70%" height="25" class="black1"><label>
          <input name="pic" type="file" id="pic" />
          </label></td>
        </tr>
        <tr>
          <td width="30%" height="25" class="black1">版块名</td>
          <td width="70%" height="25" class="black1"><label>
            <input name="category" type="text" id="category" />
          </label></td>
        </tr>
        <tr>
          <td height="25" class="black1">&nbsp;</td>
          <td height="25" class="black1"><input type="submit" name="Submit" value="添加版块" />
            <label>
            <input type="submit" name="Submit2" value="重新填写" />
          </label></td>
        </tr>
      </table>
    </form>
    </body>
    </html>
      

  10.   

       那怎么改权限?我是在NTFS里面建立的,学校里面的机子有时候貌似是FAT32吧
      

  11.   

    多达几个断点,看看怎么回事.
    这个程序漏洞太多,可能还没写完.
    比如 
    if(!in_array($_FILES[$pic]["type"],$fileType)) 
    $pic从哪里来的啊?应该是 if(!in_array($_FILES["pic"]["type"],$fileType)) 吧.$fileExt从哪里来的?最重要的是
    move_uploaded_file($_FILES[$file]["tmp_name"],$realFile);
    $file是什么?
    改成
    move_uploaded_file($_FILES["pic"]["tmp_name"],$realFile);
    就应该行了.