利用文件函数实现PHP文件上传案例分析


  本文标签:PHP文件上传

  如果你是一个电脑爱好者,不知道PHP的话你就太落伍了,如果想知道PHP的相关知识,我们就一起来看看PHP文件上传的实现吧  。这段代码分为两个文件,一个为upload.html,一个是upload.php  。

  1. <form enctype="multipart/form-data" action="upload.php" method="post"> 
  2. <input type="hidden" name="max_file_size" value="100000"> 
  3. <input name="userfile" type="file">  
  4. <input type="submit" value="上传文件"> 
  5. form> 

  

  • Visual Studio下的PHP开发工具 VS.PHP初
  • PHP之父离开雅虎 自称“离开了最好的工作
  • 新手指南何为PHP语言
  • PHP上传文件之POST方法巧用
  • 教你使文件PHP上传生效
其中,请注意
这是一个标签,我们要实现文件的上传,必须指定为multipart/form-data,否则服务器将不知道要干什么  。值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小  。MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过  。因此不要把对浏览器的限制寄希望于该值  。实际上,PHP 设置中的PHP文件上传最大值,是不会失效的  。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦  。

  1. upload.php  
  2. $f=&$HTTP_POST_FILES[Myfile];  
  3. $dest_dir=uploads;//设定上传目录  
  4. $dest=$dest_dir./.date("ymd")."_".$f[name];//设置文件名为日期加上文件名避免重复  
  5. $r=move_uploaded_file($f[tmp_name],$dest);  
  6. chmod($dest, 0755);//设定上传的文件的属性 

  或者

  1. copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?> 

  以上范例中 $_FILES 数组的内容如下所示  。我们假设文件上传字段的名称为 userfile(名称可随意命名)

  1. $_FILES[userfile][name]//客户端机器文件的原名称  。  
  2. $_FILES[userfile][type] //文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”  。  
  3. $_FILES[userfile][size]// 已上传文件的大小,单位为字节  。  
  4. $_FILES[userfile][tmp_name] //文件被上传后在服务端储存的临时文件名  。  
  5. $_FILES[userfile][error] //和该文件上传相关的错误代码 

  PHP文件上传值分析:
◆值:0; 没有错误发生,文件上传成功  。
◆值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值  。
◆值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值  。
◆值:3; 文件只有部分被上传  。
◆值:4; 没有文件被上传  。