00:00
好,咱们开始来上课,这节课呢,咱们再来了解下咱们的文件上传,那么首先呢,我们就要看到文件上传都在哪些地方用,对吧?比如说我们的网盘呢,或者网络相册啊,头像啊,实名认证,百度文库,邮邮箱的这个附件,这些是不是都要用到文件上传呢?对不对,那上传是什么,什么特征呢?也就怎么样才是上传呢?那么简单说就是将本地的文件复制一份,然后传入到什么,传到网络的服务器中存储,这是就是上传对不对,哎,那下载呢,下载是不就是将网络中的这个文件复制一份干嘛呀,传到我的本地是不是就是下载,是不是这样?哎,那咱们来看一下啊,我们现在去了解我们的上传,那比如说在这里边。我有一个什么,有一个这个本地对吧,有一台我的服务器,那么怎么叫上传,咱本地里边,比如说我有什么有浏览器对吧,我通过浏览器进行上传的吧,也就是说这里面有一个叫做浏览器。刘。览气啊,嗯。浏览器好了,那么有个浏览器,然后呢,我本地可能还有一个什么,还有一个文件对吧,比如说我叫什么呢?叫做这个,呃A点这个gpt吧,来传一张图片啊,比如这里面有个A代经济好了,那么现在我们是不是通过什么呀,通过网络连接到什么,连接到这台服务器吧,对不对。
01:15
Eight eight。来通过网络连接到这个服务器,是不是这样的,那你想第一件事干嘛,是不是我在这个浏览器里,本地浏览器里面去选择这张图片呢,对不对,比如说第一件事儿。通过浏览器对吧,或者是直接选择什么呀,上传的文件对吧,选择到了以后建了干嘛,咱通过这个互联网。互联网是不是传到什么,传到这个服务器,服务器上。互联网啊,那也就是说当第二步就是当我点击上传的时候,对吧,点击上传。的时候我们干嘛呀,服务器。点击上传的时候啊,我们通过网络对吧,传到服务器,传到服务器,那么传到服务器哪儿呢?传到服务器的一个临时目录中,一个临时目录中啊,也就是说这个服务器里边实际上它有一个什么,有一个临时目录。
02:13
比如这个就是临时目录啊。这个就是我们的临时目录。临时目录啊,那么这个临时目录它主要干嘛用呢?它说白了什么叫临时目录,就是一个垃圾目录啊,就是垃圾目叫什么叫TTMP或者tmp都有可能对吧,然后呢,它主要干嘛呢?就是为了防止病毒的防病毒啊,系统会自动给你改名,系统会自动会自动给我们干嘛给改名,自动给改名啊,比如说改成什么改成什么什么什么点。对吧,点什么呢,点tmp。点TP这么一个文件啊,这个文件是不能运行的,这个文件是不可以。
03:03
运行是不可以运行的,也就是说我们实际上我们在做上传的时候,我们实际上就是把什么把文件移动到哪,移到服务器的这个临时目录里了,对吧,通过网络把服务器把这个文件提交到这个临时目录里面了啊,那么提交到这个临时目录里边,那么接下来还会什么事呢?当提交的提交的PHP脚本运行。结束后啊,如果没有移动的临时文件,那么垃圾目录会干嘛呢?会自动删除该文件,哎,也就是说你比如说正常我们通过浏览器提交到服务器,是不是一般都提交到一个服务器页面,这个服务器端的一个页面了,对吧,一般都是PP的一个页面嘛,通过action属性是不是比如说这个就是我们的3W目录。啊,比这里面我们提交的点提交这么一个这个。页面,当这个文件啊,执行结束以后,如果你没有从临时目录里边把这个上传的这个文件移动走的话,那好临时目录会干嘛,会自动删除掉这个文件,那这时候是不是上传失败了就没有了。
04:06
啊,所以在这里面第三件事我们干嘛。第三件事儿就是把。文件从临时目录中拽过来。改名字,改名字是不是就完完成了,我们怎么上传啊,对不对,也就是说上传我们总共就是做了这三件事儿,对吧?第一我们先选择这个呃文件传,传文件以后,我们通过网络传输到服务器的临时目录,然后呢,我在这个文件里边去找到临时目录中这个文件,把它拽过来对不对,拽走那是不是就完事儿了,是不是执行了上传了,哎,这就是我们的上传啊,所以咱们这块在上传时候,大家要注意这么几个几个事儿啊,第一个事什么呀。就是我们传到哪儿了,传到了临时目录,临时目录会帮我们给干嘛呀,给改名字对吧?所以呢,在这个文件执行结束之前,我只要把这个文把这个文件移走是不是就可以了,那这个临时目录数据不会删除这个文件了,哎,这就是咱们文件上传的这么一个过程啊,好了,那咱们来看我把这里边啊,我把这个图片保存一下。
05:05
我们也自己来测试一下,看是不是这样的啊,好来我给它关闭了,关闭完之后在这里边找到我们的代码来新建一个,呃,比如叫HR文件吧,啊08M form。好吧,这里面咱们要写个表单,Method的传输方式,比如说用post啊,然后在这里边input来个。然后这里面比如叫pic啊,再来一个input叫做什么叫做test,这里面来个user,是不是一个用户名,一个头像啊是吧,比如说这块我们改成用户名好了,然后这块我们改成头像。这里面给他一个B。这里来个BR,再来一个input叫什么叫啊,然后提交到哪个页面呢?比如说这里边我们要提交到零八啊up loadad加PPT这个页面好了,那这里边同样我需要去创建08UPLOAD啊,这里面PP文件叫08UP。漏的对吧,那在这里面我们直接去接收,就是能不能接收这个高量下线。
06:05
Post。过程好了,那我们先来看一眼啊,来这里这里边我们去打印一下。放码对吧,输入用户名,比如me,然后接下来让我选择一张头像对吧,那我这里边比如说随便选择一个这个头像啊。选择谁了,选择你吧,来点击上传,上传以后你看我是不是拿到了一个的命和一个什么我的图片名啊,对吧,注意我要这个图片名有用吗。有用吗?没什么用吧,因为什么咱们说了,在这刚才我点击上传的这一刹那,他会干嘛,他会把我的这个。文件提交到我系统中的一个临时目录里面了,对吧?那么临时目录会把它改名,那我是不是得要改的那个名才行啊,是这样的,哎,而且我需要什么,不光要改的那个名,我还需要什么,还需要他这个临时路径的地址啊,那临时目录在哪呢?临时目录啊,注意我提交的是服务器对吧?那咱就上服务器,这是我的服务器,服务器里边有一个什么,有一个这个tmp看到了吗?这就是我的临时目录,来我把这里面所有东西都删掉啊,Tmp就是我们的临时目录,那咱们来看啊,在这里面会不会执行到上传来重新刷新一下,我点击。
07:09
来上传。有看到那张图片吗?是不没有根本就没有看到这里边有文件,对吧,刚才咱们说了这里面是不是会放一个文件呢?对吧?会,因为咱们上传的时候是提交到这个临时目录里面去了,对不对啊,在脚本运行结束以后,如果没把文件挪走是他才会删除,但是我在这里面点击上传是不是根本没看到啊啊因为什么,因为太快了,怎么办呢?我让这个脚本啊s lep睡睡装时间睡六分钟。睡六分钟啊,六秒钟啊,那这个时候咱们再来看啊,我看主要看我们这里边会不会看到这个文件来,Tmp这里边啊,还是tmp这个目录啊,这里边返回来。刷新再来看,我还是就提交这么一张图片,然后点击上传。来看这里边有没有啊。有吗?是不还没有,哎,我的临时路径被换,我的那个垃圾目录被换了吗。
08:03
呃呃,认识我在tmp里边没有错。没有错,这里面是不是根本都没接收到对吧?哎,为什么其实不在于它啊,在于哪呢?在于我的表单设置,在于我们的表单设置啊,表单设置我们在上传的时候注意了,我们在上传的时候不这个。用POS方式上出来,这是没有问题的啊,而且大家记住,只要是你上传图片,只要你这里边有上传图片的这个上传文件的这个这个选项,那么它的这个方式必须是post,不能用get啊,另外呢,在这里边必须用什么呢?必须要指定它的传输编码格式,叫做这个e nc type等于什么呀,等于U啊,Multi part from杠必须指定它的表面传输编码格式,这个数候它才能才能传文件,明白吧,才能传这个文件,所以只要有文件上传,你必须要指定这两个选项啊,一个是为POS的方式,一个是指定它的传输编码格式,那现在我们再来看啊。返回来。
09:01
还是一样,我们到天批注看这个时候看会不会提交来刷新,在这里面我再去选择这张图片,再次点击上传。那你看有没有叫PAP65D5的PMP是吧,当它运行结束以后,你看运行结束以后,这个文件是不是被自变成被自动删除了,对吧?但是呢,运行结束以后用POS接收值是不是只能接收个user了。看到了吧,我那个费还能接收了吗?是不是接收不到了?哎,注意所有只要是有这个文件上传的选项,不再用POS的接收,用什么呢?用files接受VR跟do打印。我还在这上面吧,来we are dop打印来什么呢?打印到了下线啊,POS里边的其他选项就是这个表单中,表单中的其他内容你该用POS的接收,POS接受,只有这个表单这一项,不再用POS,用什么呀?用这个PHS啊,就只有文件上传这一项用费S来接受,那这个时候我们再来看啊。刷新,比如说这里边我给个能密,你看是不是区分开,只要我指定了表单的那个选项啊,传输编码格式以后,你看这个我再来上传啊。
10:02
PP这里面来叫3592对吗?看好了,好除完以后你看这个名是不是3592,看到吧,我POS该接收其他选项,接收其他选项是不是只有叫piic的,你看这是一个二位数组对吧?其中有个piic pic是不是就是刚才我这个表单的名称,是不是这个表单的名称叫piic啊对吧?只有这个以type等于的这个选项,为什么呢?被导下线FS这个系统预定义边量来接收啊,那么接收以后他给我返回这么样一个数组,其中什么呢?其中带有它的原名,这是不是我的图片原名,还有我图片的类型,还有我临时目录的这个名字,只要拿到临时目录的名字,我是不是就可以做上传了,对吧?还有什么它的错误号如果为零表示什么没有错误,还有它的大小是不是都拿到了,那都拿到这里边咱说了要干嘛执行上传对吧,那怎么执行上传呢?来比如说这里边我直接这个,呃。Co Co copy是不是就可以了,我要将谁,我要将Dollar下线费里边有叫pic,这是不是找到这个pic出组了,这里边是不是有个type name,哎,这里边的这个type-name这个选项是type-name吧,对啊,是type,把它移动到哪移动到。
11:16
当前目录叫什么a.GBG,好,这不就执行上传了吗?现在你来看啊,我当前目录里边有没有a.GBG啊,来找到这里边。18,这里边不有a.JPG吗?是不是没有啊,哎,那好了,那现在咱们再来看我来执行的上传啊,来重新刷新,然后一样,比如这里边还叫额的命对吧,然后在这块呢,我们去点击一个,呃,传一个谁呢?传一个这个羊驼吧,对吧,来点击上传。好了,穿完以后来,你看a.GD有没有打开,a.DD是不是一个羊子?对吧,这时候是不是传过来了,哎,也就是上传是不是只需要这一步,直接一弄是不是就可以了,只要你找到临时目录,对吧,在这个页面结束之前,我是不是给他拷贝出来,它就不会被删除啊,对不对,那这里边我们要考虑光这么一步就就完事了嘛,肯定不行,对不对?你想啊,比如说你只允许别人传的是图片,但是呢,别人传个什么,传个exe文件是不是也行?
12:09
对不对?哎,所以你在上传的时候,是不是要判断一下什么,判断一下别人上传的这个类型了,没错吧?哎,然后还有什么呢?比如说如果一旦有错误了,就是在我点击上传那一刻,如果一旦有错误了,我还有必要再去判断了吗?这不就没有必要了,对不对?因为这个error指的什么意思,指的是从浏览器到服务器之间,就提交到服务器那一刻,就是提交到临时目录那一刻的错误,如果有这个错误了,那这就没有必要执行这些这些操作了,对吧?包括比如说我服务器现在只剩只剩10KB了,那我要求你传图片,一张图片只能传1KB,那是不是你可以传十张,但是你偏偏不听话,你就传了一个10KB的图片,那是不是我也存不进来?对不对,别人在存就存不进来了吧,哎,所以我的大小是不是也要做一个判断,对吧,还有什么,还有你的这个。图片名啊,图片名,现在你看我这里面固定写好叫什么a.GBG对吧,这里面也有了,有一个什么,有一个a.GBG是这样张图,那好了,现在回过来你看我再上传一张。
13:06
刷新。这里面。我随便找一张啊,再找一张,再来点击上传,再上传的时候,你看我是不是还叫a.DB是不是把之前的羊驼给覆盖掉了,你看这回是不是点它就变成这个小人了。对吧,那也就是说凡是用户上传的这个图片,我一定要保证一个事儿什么事啊,就是这个名不能重复,因为一旦重复它是不是就覆盖了。对不对,哎,这些是不是都是在我们考虑的范围,也就是说我们要真想执行这个文件上传,最后复制之前,是不是要把这几步挨个都判断一下才能什么才能成功吗?对不对,才能让它进行复制吧,哎,这就是我们做文件上传,需要大家去注意的啊,需要大家去注意了,好了,那这是一块,那么接下来再来看啊。来找到我们的这个笔记,你看这里边他说了文件上传的时候,诶这张表单需要注意的有两个地方对吧?第一个什么呀,上传文件时传输方式必须是POS的方式,第二个呢,这个需要指定表单传输代码格式指定这个对吧?然后PP页面需要注意什么?如果没有文件上传,那么上传的文件在PP脚本中就不能有呢啊这呢啊,如果有文件上传啊,那么上传的文件在PP脚本中就不能用到3POS来接收了,必须用什么?必须用来接收对吧?其他的内容依然用post,那么上传文件我们能支持最大是多少呢?那就要看配置文件了,这里边配置文件中有这么一个选项叫做upload-max杠,最大单张允许网两兆啊,就单个文件允许是两兆,允许上传文件的最大值看到了吗?那咱们来找一下,在这里边。
14:38
呃,这啊。PP。再按。在这里面我们直接搜索一下,叫做up load,不对,是叫。这个。Upload markx set来。你看这里边最大是不是两兆对不对?还有刚才那个临时目录,我怎么知道临时目录在在在这儿呢?你看这里面是不是定义了upload上传的time的DRR是不是临时目录在哪呢?在我的C盘WEB64下有个tmp对不对?WEB64是不是我服务器的目录,哎,然后再往后这个fair upload什么意思?V on表示什么?允许文件上传,如果你给它改为of,是不是就不允许文件上传了,对不对?然后还有什么呢?还有一个这个max fill upload什么意思,允许你最大上传数量,同时上传数量为多少,为20,也最大允许同时上传20的啊,这就是咱们跟文件上传相关的这些配置。
15:35
啊,在这里边我也挨个给大家去记了,那么另外这里边还有一点,还有什么呢?还有一个就是我postose的,咱们说了,我们如果用GA的方式上传的话,我们最大支持65535个字节,那post的很大,那post大到哪去呢?咱们来看post的到max到size啊,在配置文件里边它可以配置了,你看这表示什么意思,表示我po的允许最大的值是多少,就八兆,看到了吗?哎,能不能改,那当然可以改了,80兆,这都没问题,看你的要求了,对不对,那默认为八兆,其中这里边是不是有两兆是文件上传的,剩下六兆是不是其他内容呢?
16:08
所以说你再去改配置的时候,记住了你的那个uplo。我搜一下吧,来。同学再搜一下啊,Upload-marks-fair says,你再去改这个值的时候,注意你再改它两兆对吧?你能直接改成八兆吗?不行哦,你要想改成改成八兆可以,那你的poose的方式是不是必须要大呀,对不对?哎,所以记住这个选项不能大过poose的选项,所以这里话我给大家写了个注意的upload-max-FA size设置的值不允许超过post-max-size的值,对不对,因为post里边是包含它了啊,是包含它了,这就是跟配置文件相关的这一些选项了啊好了,那这就是我们上传文件需要注意的地方,以及我们相关的这些注意事项啊,那OK,那这节课我们到这里。
我来说两句