编程论坛's Archiver

lyuyyw 发表于 2008-2-29 00:39

php 上传问题

写个上传文件代码。但是不起作用,本地2003系统配置,目录权限可写,php.ini配置完成!
如下代码![code]<!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>
<table width="80%" border="1">
<form  method="post" enctype="multipart/form-data" name="myform">
  <tr>
    <td><label>文件上传
        <input name="myfile" type="file" id="myfile" />
    </label></td>
  </tr>
  <tr>
    <td><label>
      <input type="submit" name="submit" value="上传" />
    </label></td>
  </tr>
  </form>
<?php
//echo("你没有上传任何文件");
if(isset($submit)){
     if($myfile != "none") {
           $upload_dir = "d:\1";
           $up=copy($myfile,$upload_dir);
           if($up==1) {
               print("文件上传成功!");
           }
           else{
               print("文件上传失败!");
           }
           unlink($myfile);
         }
         else {
               echo("你没有上传任何文件");
         }
  }
?>
</table>
</body>
</html>
[/code]

lmhllr 发表于 2008-2-29 11:09

1,$submit  ==> $_POST['submit'];
2,$mufile  ==> $_FILES['myfile'];
3,判断是否有上传文件应该是if($_FILES['myfile']);
4,$up没有定义永远都不会等于1,当然永远都是输出"文件上传失败"
5,建议不要用copy用move_uploaded_file

可以说这个程序服务端部分没可取之处,建议学好基础^_^

lyuyyw 发表于 2008-2-29 21:27

谢版主解答啊,修改后还是不行,再帮忙看一下代码;[code]<?php
//echo("你没有上传任何文件");
if($_POST['submit']){
     if($_FILES['myfile']) {
           $upload_dir = "D:\1";
           $up=move_uploaded_file($_FILES['myfile'],$upload_dir);
           if($up==true) {
               print("文件上传成功!");
           }
           else{
               print("文件上传失败!");
           }
          
         }
         else {
               echo("你没有上传任何文件");
         }
  }
?>[/code]

另外
1,看书上说:form表单传递过来的值会自动复制给同名变量,所以就用了$submit,难道那样错了吗;
2. 看到网上很多用php上传的都用了copy函数,斑竹能否从自己使用的方面说一下为什么不用copy函数吗?
3. copy函数返回true ,用if判断是true不就是1吗,不正确吗?

lmhllr 发表于 2008-3-1 01:38

最简单的

[code]
<?php
//echo("你没有上传任何文件");
if($_POST['submit']){
     if($_FILES['myfile']) {
       $upload_dir = "D:/xxx.jpg";
       $up=move_uploaded_file($_FILES['myfile']['tmp_name'],$upload_dir);
       if($up==true) {
           print("文件上传成功!");
       }
       else{
           print("文件上传失败!");
       }
      
     }
     else {
           echo("你没有上传任何文件");
     }
  }
?>
[/code]

hacowz 发表于 2008-3-4 15:47

呵呵。。不错啊

hacowz 发表于 2008-3-4 15:48

这个是我写的 一个,其中有些是已经定义好的变量

$date = date('Ymd');
          $attach_dir= date('Ymd').'_'."attach";//非图片上传路径
      $r = count($_FILES['attach']['name']);
      $attach_nu=$r-2;
          
        for($i=1; $i <= $attach_nu; $i++ )
                       
    {       $dir= ATTACH_URL.$date."/";
                $dir_R= ATTACH_URL.$attach_dir."/";
                       
            $IMG_SIZE="4169764";
            $extname=strtolower(substr($_FILES['attach']['name'][$i],(strrpos($_FILES['attach']['name'][$i],'.')+1)));
           if($_FILES['attach']['size'][$i] < $IMG_SIZE )
        {
               
               
                   $filename= $date."_".$_FILES['attach']['name'][$i];
               $md = date('Ymd').'_'.md5(microtime());
                   $FILE= $_FILES['attach']['name'][$i];
               
          
           $uploadfile = $dir.$md.".".$extname;
                   $uploadfile_R = $dir_R.$filename;
            
        $img_url=attach_url.$date."/".$md.".".$extname; //图片路径
                $attach_url=attach_url.$attach_dir."/".$filename;//非图片路径
          if("jpg" == $extname || "gif" == $extname || "png" == $extname  )
                 {   if ( !is_dir($dir))
                     {mkdir ($dir);}
            
                         if(move_uploaded_file($_FILES['attach']['tmp_name'][$i],$uploadfile))
                        {  
                            
              
                 
               
                             $localattach='/\[localimg=(\d{1,3}),(\d{1,3})\]'.$localid[$i].'\[\/localimg\]/is';
                     preg_match($localattach, $text, $matches);
                             $attachimg= "<img src=".$img_url." width=".$matches[1]." height=".$matches[2]."></img>";
                             $text = preg_replace($localattach,$attachimg,$text );
                        }
                         else{  echo "失败!" ; return false; }
                         
                                           }
                                             else if("rar"==$extname || "zip"==$extname||"torrent"== $extname)
                              {  if ( !is_dir($dir_R) ){mkdir($dir_R);}
                                        if(move_uploaded_file($_FILES['attach']['tmp_name'][$i],$uploadfile_R))
                                      {
                                                $local_attach='/\[local\]'.$localid[$i].'\[\/local\]/is';
                            $attach_img= "<a href=".$attach_url.">".$filename."</a>";
                                        $text = preg_replace($local_attach,$attach_img,$text );
                                                echo $local;
                                                               
                                                                }
                                          else{echo "error!";return false;}
                                              }
                                                  else{echo "不支持该类型文件上传!"; return false;}

}
else { echo $_FILES['attach']['name'][$i]."这个文件超过论坛要求大小,如有需要请返回操作!"; return false;}
       
       
       
        }

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.