《细说h》第章下-的上传和下载_第1页
《细说h》第章下-的上传和下载_第2页
《细说h》第章下-的上传和下载_第3页
《细说h》第章下-的上传和下载_第4页
《细说h》第章下-的上传和下载_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

第10章(下)

文件的上传和下载回顾在Windows系统下php识别的文件类型?遍历一个目录下的文件都需要哪些函数?fopen打开一个文件都有哪些模式?预习检查在文件上传中客户端的表单中应做哪些设置?在全局数组$_FILES数组的第二维中都哪5项?伴随文件上传时产生的错误信息都有哪些?我们使用哪个函数来移动上传文件?本章任务1.文件上传2.多文件上传3.文件下载1.文件上传1.1客户端上传设置1.2在服务器端通过PHP处理上传1.1客户端上传设置在B/S程序中文件上传已经成为一个常用功能。其目的是客户可以通过浏览器(Browser)将文件上传到服务器(Server)上的指定目录。PHP中文件上传的基础知识:客户端form表单服务器端对上传文件的操作客户端文件上传的form表单:<html>

<head><title>文件上传</title></head>

<body>

<form

action="upload.php"

method="post"

enctype="multipart/form-data">

<input

type="hidden"

name="MAX_FILE_SIZE"

value="1000000">

选择文件:<input

type="file"

name="myfile">

<input

type="submit"

value="上传文件">

</form>

</body></html>注意几个特征属性:POST方法:表单最常用的功能,向目标页面传递变量,我们在上传文件的时候,会在表单中设置相应的属性,来完成文件的传递enctype="multipart/form-data"这样服务器就会知道,我们要传递一个文件,这样服务器可以知道上载的文件带有常规的表单信息。MAX_FILE_SIZE此字段必须在文件输入字段之前,控制最大的传递文件的大小(字节)<inputtype="file"name="userfile">设置浏览器文件输入浏览按钮1.2在服务器端通过PHP处理上传上传文件的接收和处理是通过PHP脚本来处理的,具体需要通过以下三个方面信息:设置PHP配置文件中的指令:用于精细地调节PHP的文件上传功能。$_FILES多维数组:用于存储各种与上传文件有关的信息,其他数据还是使用$_POST获取。PHP的文件上传处理函数:用于上传文件的后续处理。PH锤P配置境文件促中与瓦文件寸上传赤有关叮的选宪项指令名默认值功能描述file_uploadsON是否开启文件上传upload_max_filesize2M限制PHP处理上传文件大小的最大值,此值必须小于post_max_sizepost_max_size8M限制通过POST方法可以接受信息的最大值,也就是整个POST请求的提交值。此值必须大于upload_max_filesizeupload_tmp_dirNULL上传文件存放的临时路径,可以是绝对路径。默认NULL则使用系统的临时目录。$_焰FI河LE卫S多颜维数祝组超级岭全局喉数组$_讨FI芽LE订S1、$_孙FI姿LE例S[洪"myfi碑le旦"]男["na乌me"]中的失值是:客户久端文祥件系罢统的座文件崭的名雄称2、$_两FI泡LE悲S[堡"myfi供le额"]袍["ty奶pe"]中的蛾值是:客户弃端传鄙递的为文件半的类奔型3、$_付FI抚LE浪S[进"myfi授le墓"]衣["si登ze"]中的骑值是:文件银的字似节的雀大小4、$_遵FI能LE炭S[握"myfi在le兰"]震["tm件p_像na必me"]中的需值是:文件毫被上怠传后劳在服圣务器添存储疗的临称时全佛路径5、$_概FI燥LE国S[库"myfi执le副"]蜂["er浆ro彼r"]中的户值是:文件禽上传夸的错连误代瞒码-ph暴p毙4.启2以后妇增加拳的功祥能存储事在$_谁FI谎LE罗S["myfi割le"]["er温ro宇r"]中的距值伴随隔文件交上传晨时产例生的轧错误也信息代码功是在暴版本刑中引射入的,具体导如下苦:值为0:表斯示没扔有发铜生任亩何错连误。值为1:表定示上嘴传文惨件的陪大小画超出捧了约眯定值参。文备件大卵小的个最大恐值是喇在PH蛾P配置枕文件尸中指翅定的肿,该队指令愤是:up诞lo跃ad赤_m露ax米_f画il填es对iz届e。值为2:表座示上久传文扔件大慨小超闸出了HT暗ML表单吐隐藏拼域属顾性的MA齿X_FI啄LE_SI倦ZE元素姿所指身定的验最大撒值。值为3:表涝示文拐件只梨被部晒分上您传。值为4:表勒示没搬有上付传任美何文纹件。值为6:表费示找不撇到临港时文说件夹丘。PH讨P帅4.禽3.用10和PH念P辜5.掀0.恢3引进。值为7:表盏示文件饺写入填失败美。PH雪P额5.外1.债0引进断。错误世值对想应的徒常量UP猛LO啊AD紫_E棒RR堡_O垂K:庙对云应值0UP墨LO慌AD肉_E敢RR晚_I谢NI比_S袄IZ悉E:中对宿应值1UP流LO融AD堪_E咸RR梳_F烘OR家M_食SI就ZE:对应救值2UP途LO胶AD俗_E浆RR康_P敢AR络TI沉AL:考对嚷应值3UP漏LO锦AD哥_E副RR谜_N凡O_们FI业LE:公对俩应值4UP活LO摇AD太_E帆RR蔑_N化O_俯TM棚P_集DI劣R:禁对统应值6UP萝LO去AD砖_E扬RR怪_C淋AN亦T_恩WR英IT悄E:耽对沾应值7常见跃数据轮格式唇(MI敌ME)文件类型MIME类型图片文件image/gif,image/jpg,image/jpeg,image/png,image/x-png纯文本和HTMLtext/txt,text/plain,text/html二进制文件application/octet-stream音频格式audio/basic视频格式video/mpegPH刑P的规文件苦上传扩处理懒函数上传粒成功胞的文件会被放吧置到渴服务滥器端亮临时肝目录下,证文件绕名是随机棋生成将的临虾时文穴件名嘴。注:叙该文问件在群程序例执行保完后京将自群动被熟删除填掉。序在删沾除前教可以鹅像本危地文闸件一痕样操窑作。文件辉上传狭处理蔬函数候:is傲_u胡pl净oa消de珠d_哑fi贵le踏—判断均文件么是否纽奉是通压过HT酱TP秘P蜡OS笔T上传宣的格式开:bo胞ol陕i哭s_团up插lo昨ad种ed督_f烟il摔e恳(昏st毒ri箱ng和$枕fi朗le律na回me黄)mo济ve尼_u古pl雁oa堪de苍d_析fi样le狮—将上香传的半文件笑移动匪到新金位置格式报:bo田ol限m剂ov察e_热up探lo肉ad害ed霉_f榨il岔e泻(惕st歌ri蓬ng栏$桐fi范le该na栋me航,字s谅tr荐in踩g圈$d盆es备ti否na递ti核on觉)注意比:如尤果目伍标文堆件已善经存尤在,钓将会待被覆温盖。<?瞒ph主p$a元ll乎ow障ty钩pe=ar盒ra列y("g塔if京","p浅ng粉","j盟pg绑");//设置妇充许叫上传哑的类胃型为gi猎f,拥p架ng和jp僵g$s撒iz奴e=10燥00沃00奔0;//设置则充许厅大小堂为1M(10油00另00艰0字节司)以什内的惑文件$p堆at薯h=".骆/u群pl腔oa盛ds扒";//设置乓上传樱后保众存文茎件的养路径//叼1.判断叼文件挎是否另可以峡成功露上传醋到服忘务器蓝,$_药FI革LE南S[具'm腿yf嚷il欣e'横][旦'e博rr挑or钟']为0表示暴上传慎成功if($_愤FI到LE勉S['m阿yf浮il标e']['e喊rr衬or晕']>0){ec听ho'上传古错误:弊';sw叹it袖ch($_敲FI当LE炒S['m停yf秀il压e']['e量rr结or练']){ca遍se1:di育e('上传归文件珍大小悉超出熟了PH跟P配置疗中的绍约定讲值:up鸟lo倍ad博_m鼠ax励_f饼il厉es往iz功e');ca智se2:di雕e('上传袜文件服大小宁超出贴了表迁单中感的约谦定值劲:MA负X_驻FI萍LE游_S厚IZ堆E');ca科se3:di捕e('文件蚀只被想部分级上载');ca唇se4:di缸e('没有协上传疫任何塘文件');ca锋se6:di腹e('找不墓到临丙时文菌件夹');ca糖se7:di显e('文件查写入袜失败');de暂fa寄ul触t:di葬e('末知径错误');}}//哗2.判断智上传它的文模件是易否为暮充许曾的文堤件类旗型,通过惧文件梯的后逃缀名$h监z=ar龙ra驶y_网po串p(ex俊pl插od枝e(".毙",$_崇FI色LE谋S['m姻yf渠il羞e']['n吓am盟e'])伙);//微3.通过浊判断茅文件暑的后蓄缀方洲式,汤来决事定文抓件是泄否是田充许假上传购的文绸件类封型if(!in跨_a凝rr幕ay($h阵z,$a鸭ll智ow谜ty申pe)){di术e("这个帝后缀梁是<b诞>{$土hz咬}</鼠b>拾,不是过充许哭的文前件类蹦型!");}//籍4.判断新上传险的文处件是哭否为母充许啄大小if($_浴FI戏LE文S['m症yf泉il搭e']['s悼iz君e']>$s烧iz伟e){di遭e("超过雷了充贝许的<b葡>{$帅si搂ze义}</嘉b>字节凡大小");}//厘5.为了申系统稿安全壳,也脉为了诵同名评文件鲜不会妨被覆旱盖,见上传捷后将爹文件俱名使龄用系讯统定值义$f漂il咱en制am味e=da喜te("Y煤md驱Hi编s").ra美nd(10鞋0,99材9).".荡".$h贱z;//缠6.判断屠是否叫为上泪传文功件if(is缓_u化pl鞠oa植de旁d_才fi衡le($_前FI偿LE臣S['m度yf避il撕e']['t申mp笑_n兵am蜡e'])抄){if(!mo鼻ve尺_u秃pl桂oa洁de太d_丛fi畏le($_盏FI晃LE锯S['m库yf远il提e']['t奋mp代_n要am种e'],$p驾at掩h.'/赶'.$f羡il孟en怖am渗e)){di蓄e('问题:不能疼将文嫂件移恩动到斥指定筒目录劣。');}}el未se{di倒e("问题:上传旗文件{$录_F言IL捕ES滨['贴my牧fi屈le项']舰['狭na窃me袭']菜}不是杨一个掀合法石文件:拨");}//隆7.如果疯文件宣上传侦成功览则输蛾出ec禁ho"文件{$鸣up锻fi碎le腔}上传狡成功,保存匆在{$孩pa均th盾}中,馅大小涨为{$漫_F椒IL慈ES衫['功my扣fi墓le房诚']油['罚si得ze借']姥}字节";2处理熄多个匹文件珍上传当需寒要上晌传多肢个文械件的筛情况,有两冬种实长现的何解决分方法倾:使用今不同螺的表纱单元第素<i厕np卧ut业t侍yp猾e=散"f触il甲e"肢n在am利e=错"fi样le概_a"><i促np挥ut充t芳yp羡e=掘"f叙il咱e"很n蓬am利e=杜"fi黑le反_b"><i寄np踩ut幼t豆yp爷e=挪"f工il泄e"致n委am宏e=山"fi橡le左_b">使用贩数组脾格式拆的表吼单元讲素<i术np且ut疗t银yp杏e=臣"f蜜il虫e"晶n窗am注e=登"fi问le耳[]"><i野np址ut耕t腿yp椅e=赛"f视il蛛e"滨n获am捕e=棕"fi访le股[]"><i提np助ut俘t咐yp

温馨提示

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

评论

0/150

提交评论