本地调试上传下载都没问题,源码上传到空间后,进入上传页面,上传文件总是失败!也不提示错误! 以下是部分关键代码!是路径的问题吗?本地和远程??
<form enctype="multipart/form-data" action="uploadgo.php" method="post" name="form_load"> 
  <input type="hidden" name="max_file_size" value="1000000"> 
  <input name="user_file[]" type="file">
  <div id="new_up_down"></div><br />
  <input type="button" name="add_file" value="新增上传" onclick="go_up()"/>
  <input type="submit" name="submit" value="上传文件"> 
</form>
if($_POST['submit']=='上传文件')
  {  
    foreach ($_FILES["user_file"]["error"] as $key => $error) 
    {
      switch($error)
     {
        case 0:
    $tmp_name = $_FILES["user_file"]["tmp_name"][$key];
            $name = $_FILES["user_file"]["name"][$key];//上传文件的名称
    $size = $_FILES['user_file']['size'][$key];//上传文件的大小
    $error=$_FILES['user_file']['error'][$key];
    $uptime=date("Y-m-d H:i:s",strtotime("now")+8*60*60);;
    $ext = substr($name,strrpos($name,"."));
    $upload_dir='up_down_load/upload/'.(empty($_SESSION['loginname'])? 'public':$_SESSION['loginname']).'/';
    $targetname=$name;
uploadfile($type,$name,$ext,$size,$error,$tmp_name,$targetname,$upload_dir);     echo $name."上传成功!"; 下面是上传方法
function uploadfile($type,$name,$ext,$size,$error,$tmp_name,$targetname,$upload_dir)
{
    $MAX_SIZE = 2000000;
    $FILE_MIMES = array('data/jpeg','data/jpg','data/gif','data/png','application/msword');//默认的是image不是data
    $FILE_EXTS = array('.jpg','.gif','.png','.JPG','.GIF','.PNG','.TXT','.txt','.rar','.chm');

    $file_path = $upload_dir.$targetname;     
    if(!is_dir($upload_dir))
    {
        if(!mkdir($upload_dir))
            die("文件上传目录不存在并且无法创建文件上传目录");
        if(!chmod($upload_dir,0755))
            die("文件上传目录的权限无法设定为可读可写");
    }
    elseif($size == 0)
{
        echo "请选择上传的文件";
die("<script language=javascript>this.history.go(-1);</script>");
        //echo "<meta http-equiv=\"refresh\" content=\"1;url=up_down_t.php?load=upload\">";
}
elseif(!in_array($type,$FILE_MIMES) && !in_array($ext,$FILE_EXTS))//默认的是||不是&&
{
        echo "请上传符合要求的文件类型";
die("<script language=javascript>this.history.go(-1);</script>");
        //echo "<meta http-equiv=\"refresh\" content=\"1;url=up_down_t.php?load=upload\">";
}
elseif($size>$MAX_SIZE)
{
        echo "上传的文件大小超过了规定大小";
die("<script language=javascript>this.history.go(-1);</script>");
        //echo "<meta http-equiv=\"refresh\" content=\"1;url=up_down_t.php?load=upload\">";
}
    elseif(!move_uploaded_file($tmp_name, $file_path))
{
        echo "复制文件失败,请重新上传";
die("<script language=javascript>this.history.go(-1);</script>");
}
}

解决方案 »

  1.   

    上传的目录是否有写入权限??服务器是否 linux ?文件名/文件夹大小写敏感?
      

  2.   

    表单
    <input name="user_file[]" type="file">
    你确定本地没问题?
    foreach ($_FILES["user_file"]["error"] as $key => $error) 
      

  3.   

    不知道服务器是linux还试windows,只提供给我FTP空间和域名,其他的一概不知。烦死我了
    如果是linux,有什么问题吗? 大小写敏感,我的路径和创建的文件夹全都是小写
      

  4.   

    就提示 :echo "复制文件失败,请重新上传";
      

  5.   

    哦,我看错了其实这样大家也说不出什么。你最好上传后,打印var_dump($_FILES);,看看各项值是什么
      

  6.   

    array(1) { ["user_file"]=> array(5) { ["name"]=> array(1) { [0]=> string(9) "linux.txt" } ["type"]=> array(1) { [0]=> string(10) "text/plain" } ["tmp_name"]=> array(1) { [0]=> string(14) "/tmp/phpfwXiH2" } ["error"]=> array(1) { [0]=> int(0) } ["size"]=> array(1) { [0]=> int(4645) } } } 
      

  7.   

    确认是完整代码?怎么switch才一个case,而且不完整。foreach也是。