PHP网站开发项目式教程-文件上传_第1页
PHP网站开发项目式教程-文件上传_第2页
PHP网站开发项目式教程-文件上传_第3页
PHP网站开发项目式教程-文件上传_第4页
PHP网站开发项目式教程-文件上传_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务四表单数据的提交主要知识点表单数据的验证系统数组$_POST和$_GET在接收表单数据中的应用系统数组$_FILES在上传文件中的应用4.3文件上传功能实现你在哪些网站或应用程序中上传过文件?文件上传功能需要解决的问题:浏览器端(表单中)如何增加上传文件的功能服务器端如何获取上传文件的信息并按指定位置保存上传文件浏览器端的设置浏览器端需要做如下设置第一,需要在表单标记中设置Enctype属性值为multipart/form-data,只有设置为multipart/form-data编码格式,才能完成传递文件数据;另外完成文件上传时,表单中method属性取值需要设置为post。第二,action属性必须指定能够接收并处理上传文件的PHP文件。第三,必须在表单界面中增加文件域元素,使用<input>标记的type属性值“file”来生成文件域元素,同时设置name属性的取值。例题创建页面文件up.html,设计如图所示表单界面,设文件域元素名称为file14.3.2服务器端的功能设置服务器端功能说明服务器端获取上传文件的信息上传文件包括文件名、文件类型、文件大小、存储位置等相关信息在服务器端需要通过系统数组$_FILES获取这些信息问题导入:作为一个系统数组,$_FILES的键名如何?系统数组$_FILES的应用数组的键名系统内置数组$_FILES是一个二维关联数组,第一个维度的键名是表单界面中文件域元素name属性的取值,若是存在多个文件域元素,则它们的name属性取值都各不相同;第二个维度的键名则是由系统提供的固定键名,常用的有name、type、size、tmp_name和error。$_FILES数组第二个键名的用法假设文件域元素name属性取值为file1,则第二个键名的用法和说明如下:$_FILES["file1"]["name"]:表示被上传文件的名称;$_FILES["file1"]["type"]:表示被上传文件的类型;$_FILES["file1"]["size"]:表示被上传文件的大小,以字节计;$_FILES["file1"]["tmp_name"]:表示存储在服务器的文件的临时副本的名称;$_FILES["file1"]["error"]:表示由文件上传导致的错误代码。将上传文件的大小使用kB表示函数round()的应用$size=round($_FILES["f1"]["size"]/1024,2)."kB"函数round()对第一个参数指定的数据进行四舍五入,保留的小数位数由第二个参数指定例题创建up.php文件,获取up.html中文件域元素file1所上传的文件信息,并输出,结果如图所示思考问题根据前面观察的效果,上传的文件默认存放在哪里?文件名称如何?如何将用户上传的文件使用指定名称保存在指定位置?上传的文件,默认存放在系统盘符下的存放临时文件的文件夹中,文件的名称也采用了临时名称形式。使用函数move_uploaded_file()完成函数move_uploaded_file()函数move_uploaded_file()格式:move_uploaded_file(参数1,参数2)作用:将参数1指定的临时文件存储到参数2中指定的位置并更换为参数2中指定的文件名称参数1通常是$_FILES["file"]["tmp_name"]参数2中“位置”使用一个文件夹来指定,文件名称则使用$_FILES["file"]["name"]得到。将上传文件保存到指定位置,相当于对文件做了移动和重命名工作。函数move_uploaded_file()的编码问题函数move_uploaded_file()只支持GB2312或者是GBK编码,并不支持UTF-8编码,若是页面字符集编码类型是UTF-8,并且上传的文件名称包含汉字,该函数将无法成功执行。因此,在使用该函数之前,需要先使用iconv()函数转换名称中的汉字编码来解决问题,应用iconv()函数之后的代码如下:$fname=iconv("UTF-8","GB2312",$_FILES["file1"]["name"])完成文件上传示例修改up.php文件,在最后增加代码,将上传的文件保存到upload文件夹中(必须要先在up.html和up.php文件所在位置创建文件夹upload)课堂练习在4-1.html页面中“个人介绍”行下面增加如图所示的界面效果,写出相应的界面代码(文件域元素名称为tximg),之后修改4-1.php文件,增加代码获取上传的头像文件信息,并将头像显示在浏览器中(效果如图所示)。4.3.5多文件上传使用HTML5表单元素新属性multiple设置允许多文件上传在服务器端实现多文件的接收与存储multiple属性multiple属性规定输入域中可选择多个值。在<inputtype=“file”>中使用该属性,可以方便实现多个文件的上传功能,要求为:文件域元素name属性取值必须带有[]同时选择的多个附件要求位于同一个文件夹中,否则无法实现多选选择多个文件时,可以按住shift连续多选,也可以按住ctrl任意多选服务器端接收并保存多个文件$_FILES[][]的应用说明多文件上传时,$_FILES['file1']['name']获取到的是所上传的所有文件的名称形成的数组,而$_FILES['file1']['tmp_name']获取到的是所上传的所有文件的临时存储信息形成的数组。数组元素的个数通过函数count()来获取。$_FILES['file1']['name'][0]得到的是上传的第一个文件的名称。对所上传文件进行处理时需要通过循环来完成。完成多文件上传功能修改up.php文件将上传的所有文件保存到与文件up.php同级的文件夹upload中;输出所有文件的名称。上传大文件PHP中默认能够上传的文件的大小不超过2M,若是选择上传的文件大小超过2M,则文件上传操作无法成功完成。修改配置文件php.ini可以实现大文件的上传,需要修改的配置项有两项,分别是upload_max_filesize和post_max_size。upload_max_filesize配置设置的是允许上传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论