请选择 进入手机版 | 继续访问电脑版
绿茶科技社区

PHP文件上传

2019-10-16 08:41
553
开发中需要上传图片、音乐、视频等等,这种上传传递是二进制数据。
1.1客户端上传文件
        文件域:
  1. <input type="file" name="image">
复制代码
          表单的enctype属性:
          默认情况下,表单传递是字符流,不能传递二进制流,通过设置表单的enctype属性传递复合数据。
enctype属性的值有:
  • application/x-www-form-urlencoded:【默认】,表示传递的是带格式的文本数据。
  • multipart/form-data:复合的表单数据(字符串,文件),文件上传必须设置此值
  • text/plain:用于向服务器传递无格式的文本数据,主要用户电子邮件
1.2服务器接收文件
        超全局变量$_FILES是一个二维数组,用来保存客户端上传到服务器的文件信息。二维数组的行是文件域的名称,列有5个。
        1、$_FILES[][‘name’]:上传的文件名
        2、$_FILES[][‘type]:上传的类型,这个类型是MIME类型(image/jpeg、image/gif、image/png)
        3、$_FILES[][‘size’]:文件的大小,以字节为单位
        4、$_FILES[][‘tmp_name’]:文件上传时的临时文件
        5、$_FILES[][‘error’]:错误编码(值有0、1、2、3、4、6、7)0表示正确
1.3将上传文件移动到指定位置
       函数:
  1. move_uploaded_file(临时地址,目标地址)
复制代码
代码:
  1. <body>
  2. <?php
  3. if(!empty($_POST)) {
  4.     if($_FILES['face']['error']==0){  //上传正确
  5.         //文件上传
  6.         move_uploaded_file($_FILES['face']['tmp_name'],'./'.$_FILES['face']['name']);
  7.     }else{
  8.         echo '上传有误';
  9.         echo '错误码:'.$_FILES['face']['error'];
  10.     }
  11. }
  12. ?>
  13. <form method="post" action="" enctype='multipart/form-data'>
  14.     <input type="file" name="face">
  15.     <input type="submit" name="button" value="上传">
  16. </form>
  17. </body>
复制代码
1.4与文件上传有关的配置
             post_max_size = 8M:表单允许的最大值
            upload_max_filesize = 2M:允许上传的文件大小
            upload_tmp_dir =F:\wamp\tmp:指定临时文件地址,如果不知道操作系统指定
            file_uploads = On:是否允许文件上传
             max_file_uploads = 20:允许同时上传20个文件

分享到 :
0 人收藏

3 个回复

倒序浏览
ok_0066  高级会员 | 2019-10-16 08:52:43
撸过
王清培  高级会员 | 2019-11-7 10:36:50
我也是坐沙发的
冠军  金牌会员 | 5 天前
我也是坐沙发的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

举报|Archiver|手机版|小黑屋|Lvchakeji Inc.  

Powered by Discuz! X3.3 © 2001-2016 Comsenz Inc.

返回顶部