php中文网 课程
每日17点准时技术干货分享
第1章文件上传
1.1客户端上传设置
在B/S程序中文件上传已经成为一个常用功能。其目的是客户可以通过浏览器(Browsr)将文件上传到服务器(Srvr)上的指定目录。
网络上常见的支持文件上传的网站:
各种网盘
头像
网络相册
实名认证
邮件附件
简单来说就是,Wb开发需要用户传递给服务器文件的都属于PHP的上传范畴。而服务器端只能接受的份,除非不做这个功能。
就像客服,你只要打过去,它就要接受,不接受只能是服务器繁忙。
PHP中文件上传的基础知识:
1)客户端form表单设置
2)服务器对上传文件进行操作处理
必须设置的form表单项:
htmlhadtitl文件上传/titl/hadbodyformaction="./upload.php"mthod="post"nctyp="multipart/form-data"!--必须要写--!--typl写fil类型,nam必须要写,名字随便--选择文件:inputtyp="fil"nam="myfil"inputtyp="submit"valu="上传文件"/form/body/html
注意几个特征属性:
1.一定是post方式上传文件,不可用gt方式。
2.form表单中一定要写nctyp="multipart/form-data"。
3.input表单一定要写nam名。
1.2在服务器端通过PHP处理上传
上传文件的接收和处理是通过PHP脚本来处理的,具体需要通过以下三个方面信息:
1)设置PH配置文件中的指令:用于精细地调节PHP的文件上传功能。
2)FILES多维数组:用于存储各种与上传文件有关的信息,其他数据还是使用_POST获取。
3)PHP的文件上传处理函数:用于上传文件的后续处理。
1)PHP配置文件中与文件上传有关的选项。
2)_FILES多维数组。
超级全局数组_FILES
1、_FILES["myfil"]["nam"]中的值是:客户端文件系统的文件的名称。
2、FILES["myfil"]["typ"]中的值是:客户端传递的文件的类型。
3、_FILES["myfil"]["siz"]中的值是:文件的字节的大小。
4、_FILES["myfil"]["tmp_nam"]中的值是:文件被上传后在服务器存储的临时全路径。
5、_FILES["myfil"]["rror"]中的值是:文件上传的错误代码-php4.2以后增加的功能。
关于rror文件上传的错误代码:
UPLOAD_ERR_OK
其值为0,没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
其值为1,上传的文件超过了php.ini中upload_max_filsiz选项限制的值。
UPLOAD_ERR_FORM_SIZE
其值为2,上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值。
UPLOAD_ERR_PARTIAL
其值为3,文件只有部分被上传。
UPLOAD_ERR_NO_FILE
其值为4,没有文件被上传。
UPLOAD_ERR_NO_TMP_DIR
其值为6,找不到临时文件夹。PHP4.3.10和PHP5.0.3引进。
UPLOAD_ERR_CANT_WRITE
其值为7,文件写入失败。PHP5.1.0引进。
注意:以上值在PHP4.3.0之后变成了PHP常量。
常见数据格式(MIME)
3)PHP的文件上传处理函数
上传成功的文件会被放置到服务器端临时目录下,文件名是随机生成的临时文件名。
注:该文件在程序执行完后将自动被删除掉。
在删除前可以像本地文件一样操作。
文件上传处理函数:
is_uploadd_fil—判断文件是否是通过HTTPPOST上传的。
格式:boolis_uploadd_fil(stringfilnam)
mov_uploadd_fil—将上传的文件移动到新位置。
格式:boolmov_uploadd_fil(stringfilnam,stringdstination)
注意:如果目标文件已经存在,将会被覆盖。
参数说明:文件临时目录,要移动到的位置目录
案例:
1)设置前端上传界面
!DOCTYPEhtmlhtmlhadmtacharst="UTF-8"titlDocumnt/titl/hadbodyformaction="doup.php"mthod="post"nctyp="multipart/form-data"inputtyp="fil"nam="pic"inputtyp="submit"valu="上传"/form/body/html
2)doup.php处理上传到临时目录的文件
//专业搬运工具//mov_uploadd_fil()//参数1:文件临时目录参数2:要移动到的位置//is_uploadd_fil()判断文件是否是