00:00
好,我们继续来上课,那么这节课呢,我们再把文件上传啊,封装成一个函数啊,那在这里面我们一样新建一个PP的文件,叫做幺零,然后起名呢,叫做upload-UNC。好,这里边我们要做的是干嘛呢?是封装文件上传,封装文件上传对吧?那你就要想在这里面封装的时候,我都需要给什么参数对吧?来这里边我们定义,比如说function f func p来起名就叫flo的括号好了,那这里边首先你要告什么,告诉你表单的名称,比如给个pic对吧,然后呢,你还要告什么,还要告诉我你上传保存到哪个路径下对不对,然后还有什么,还有你的这个,比如说你允许的大小啊,对吧,你允许的类型啊。是不是都要告诉我,比如说你允许的大小,我给了一个默认,默认网的默认为。还是5万啊。然后呢,这个类型呢,类型我也可以给他一个什么,给他一个默认对吧,比如这里边我默认让它是个数组类型的ay对吧,默认等于一个什么样ay来这里边就是有默认值叫image gpg对吧,然后image PG。
01:08
PG还有什么image GF是不是都定义的默认了,那定义好默认也就是你传我就用你传的,不传是不是用我自己的,同样这个pass我是不是也可以做默认,对吧?比如说默认什么默认就叫PA,诶不对,默认叫做uplo的这个目录,但是你要注意别人在传的时候,这个uplo有可能加斜线,也可能不加斜线,对不对?哎,所以我们一会儿也要对它进行处理好。好了。那在这里面我们要干嘛,第一件事是不是还是一样要判断错误号对吧?判断错误号,如果没有错误号,接下来干嘛判断允许的类型对吧,然后再来呢判断。允许的大小对吧,然后接下来干嘛呀,判断。保存的目录吧,哎,然后再来呢,是不是重命名,重命名重命名诶。重命名对吧,哎,重命名完之后,接下来干嘛,是不是就开始移动。
02:05
图片做移动文件对吧,哎,移动完以后,最后这个东西干嘛呢?返回怎么样叫如果成功返回。数组。一个关于文件上传信息的数组,对吧?失败呢,返回一个什么返回报呗。失败,失败返回。对应错误的字符串是不是就可以了,哎,那好了,那现在在这里边咱们来看啊,我先判断错误号啊,不是判断错误号先来干嘛呢,先来保存一下变量,比如说到了这个。等下。FS里面的到了pic是不是算出了pic表单的名称啊,哎,有了它以后,接下来开始去判断错号,那如果到了F里边的ER or错号要是大于零的时候,那这个时候直接咱还能不对是K,不对是s Switch ch吧,S wi ch。
03:02
判断谁判断fair里边的ER or对吧,然后呢,这里边如果case它要是等于什么,咱没有不用等于零的对吧,等于一,等于一的时候,我是不是要一句话,哎,这里面直接return就行了啊什么呢叫做。上传文件超过了PP.ini配置。文件中叫什么呀?叫做upload up。漏了杠max。杠,Fair fair size。I,对吧。值是不是这个意思,哎,直接对调了啊,你不直接了,函数只要执行到瑞,剩下代码是不是都不执行了,对不对,然后再来那case。Case如果要等于二的时候呢,等于二继续叫什么呀,叫做上传。上传文件超过了什么HTM表单的?
04:02
非杠。设置是吧,值吧,哎,然后在case如果等于三的时候呢,我就return什么呀,只有部分文件被上传对吧,然后在K如果等于四的时候呢,我就出一个什么没有。没有文件上传对吧,就不管你走到哪一步,只要有错,我是不是都退出一个字符串对吧,字符串是不是就是一个错误信息啊,哎,如果等于五,咱没有五等于什么六,如果等于六的时候,我就直接出一个什么没有零时或者是找不到。找不到临时的目录,然后再来K等于七的时候,那就是什么,你出一个。写入失败或者是什么没有权限是吧。写入失败吧,写入失败是不是这个意思?哎,好了,那第一步我的判断搞定了,只要是走到判断里边,我是不是就会return对应的字符串,哎,那好了,那第二步开始干嘛?是不是允许的类型啊?那也就是如果,如果什么Dollar fair不对类型应该用什么取反?英杠a in RA,如果你上传的这个fair里边的这个type类型要是在我定义的这个数组中,那么就可以,如果不在,是不是取反了?如果不在,我是不是就捋出一个什么类型上传。
05:17
文件的类型不合法呀,对不对,那再来判断干嘛,判断大小吧,那如果你定义你传的这个费里面的这个size SI,这一要是大于了我定义的这个size,那是不是一样,我继续给你存什么一个叫做。上传文件。过大对吧,超过了设置的什么呀,设置的这个Dollar的。值了,是这样的,哎,然后呢,接下来干嘛,判断保存的目录吧,那判断保存录我先制作一下这个目录,也就是这个Dollar pass。等于什么呢?RTRM,不管你后面传没传来Dollar pass给我删掉,最后者斜线就不管你传还没传,删完以后我自己再连上是不是就可以了,哎,这时候就固定上了好了,那有了以后,接下来我来判断,如果feel gone。
06:09
那个times谁呢?Dollar pass,如果它不存在的话,那这块是不是得取反不存在,不存在的话怎么办?我说make Di创建这个Dollar pass对吧?哎,同样我可以给他07777对吧,然后给他设置一个出什么意思,就是让它进行递归的创建吧,哎,好了,那接下来是不是就重命名了?那重命名的话,我是不是得先获取后缀名啊,对吧,那到了Su。Sux等于什么呢?等于这个叫做SRCHR,找到。从找出上,从这个feel里边的这个name中去给我找找谁找点最后出现的位置,这是就点DBG那个后缀就拿到了,拿到以后接下来开始干嘛,我来do。定义这个name等于什么MD5对吧?里边比如UNIQID这一个函数,连上当前时间桌,再连上MT杠状的杠R。
07:01
杠R。哎,我不给它了,我不往里面写值了,是不是从零到我PP能支持的最大数,对吧?然后我再连上什么,连上我的Su Fi,这是不是文件的后缀,就有了这个文件名是不是就可以了,文件名可以了,那接下来没我要判断谁是不是pass里边的这个name nme是不是这个路径下的这个名,哎,如果这个名存在,我是不是就继续循环,继续循环是不是重走这个,重走这个是不是重新形成了一个名了,对不对,那好了,那完事以后,接下来干嘛?H用什么fair-ex是得判断它存在啊。哎,如果它存在才这样啊,如果它不存在的话,那是不是就直接不走了,哎,接下来开始干嘛,移动文件,那就如果,嗯,杠upload file如果成功。怎么怎么样,我是返回一个数组,那失败的时候呢,失败的时候我是不是就直接I return一个,什么叫上传失败请重新上传呢。请重新上传对吧,当然一般情况下到这步已经不会失败了,对吧,然后我们说了成功的时候我们要干嘛,我们要去返回一个信息吧,哎,返回一个什么信息,返回一个数组对吧?那我这里面定义一个数组,哎呀。
08:07
等于什么呢?等于比如说pass PA pass info啊,PA等于什么值,那咱们先给它移动了啊,比如Dollar fair里边的pap-name,把这个文件给我移动到哪呢?移动到pass下叫什么呢?叫name这个名是不是就可以了?哎,那好了,那接下来呢,详细的信息就是我的pass连上我的这个name对吧?然后在Dollar AR里边还有pass呢,PA,那就等于我的Dollar pass,把它的路径单独保存,Dollar里面的这个name,也就是我的新的上传的文件名,就等于我的到内也做一个保存,是不是返回这么一个信息对吧?那最后我在这个if的后边直接return谁啊,到了arr是不就可以了?对不对,哎,好了,那这个文件封装的这个函数我们是不是就搞定了,那搞定完以后我们得用得试验一下吧,那在这里边比如说。来的。Upload调用我的表单名依然叫pic对吧?传到哪呢?比如说传到大熊目录下边,Upload下边,注意啊,是大熊下面的upload啊好了,然后这里边,比如说我再给个年份2020传到这个下边啊,然后其他东西我都不变了,然后他会给我返回一个结果it。
09:15
返回到这个结果以后,这个时候我们再来打印这个结果,打印到了这个结果我们再来看啊。返回来不行,我应该先把零八这块改了,改成什么呀,叫做幺零了,对吧,10UP load-function是不是往这个文件提交。Upload function的PP啊好了,那这个时候我们再来看啊,重新刷新一下,然后选择一张图片。来大家这个点击上传,上传成功了对吧?是不是返回了一个数组啊,返回一个数组,你看是不是给了这个,这是他的详细信息对吧?这是他的这个路径信息,这是它的图片名对吧?那好了,那你看对应的我上我的这里面去找去啊来找到18这里边,18这里边是不是有多了一个大熊,找到大熊这里边是不是有个uplo的,Uplo里面是不是有个20202020下面是不有这张图片,是不是就找到了,哎,这是我上传成功的,那如果上传失败呢?你看好了,比如说这里面重新刷新,我没有选择图片,是不是没有选择文件,是不是就报艾若维四啊,如果把艾四点击上传,你看是不是没有文件,上传任何一个失败了,是不是都能返回的字符串,我整个这个函数写了任何一个失败的,是不是返回的都是字符串,只有最后一步成功,你看这里面是不是全都return字符串,对吧?只有最后一步成功了,我才这个数组嘛。
10:23
哎,这是咱们文件上传函数啊,这两文件,那同样我们在之前是不是还学过图片缩放对吧,那来咱们来看一下图片跟缩放跟文件上传能不能以结合的使用啊,比如找到16周里边。嗯,TB这里面有是吧,那应该在17,我们是不是就给它封装过来,T这里边是不是有这个函数CTRLC啊,我们把它拿过来,拿到哪呢?拿到我的18这里面,把这个文件再放过来啊,这叫零四对吧?那好了,那比如说在这块我图片上传完以后,我想给他做缩放怎么办?是否可以在这里边,比如我来判断判断什么呀,A字杠。A2Y,谁呢?如果到了道师数组是数组,是不是就代表我图片上传成功,上传成功干嘛呢?我就调用了th Hu MB这个函数啊,但是tmb我得先引入吧,INC in包含包含什么呢?包含零,四。
11:13
零四下边THHUB.function的PP这个文件啊,那我看一下在零四这里边我都写的什么啊,零四这里边,哎,我这里面是不是有调用啊,我把它调用注射掉了,然后注射掉了好了,那接下来在这里边你看好了啊。那我调用它首先是原路径是什么,原路径是不是就是Dollar result里边,里边有个什么,有个叫pass PT,就pass info,这是不是有原路径对吧,然后呢,你要给他传到。这个保存到哪里,那依然比如说我要保存到这个Dollar result里边,是不是还有一个叫做pass了,按PH保存这个路径下边我再连连上一个斜线叫HUB这个目录。能明白吧,哎,也就是说把它保存到这个目录下边啊,然后你缩放多大呢?比如说我要缩放一个50 50大小的啊好,那最后完事以后咱们来看啊,这里边我来算了,接收个返回值吧,这会来个Dollar res啊,接收完以后我们再来为I放DP打印这个Dollar res,大家来看我在上传的同时是不是也可以做缩放啊,来这里边。
12:14
返回来重新刷新,我们再选择一张图片啊,这回选择谁呢?我选择这个车啊,可能这个车来点开,点击上传告诉什么呀,以面基地,他说这个这个诶。看好了,我路径拼接的有错,看到了吗?哎,这里边你看UPLOAD2020HUB拼接的有错啊HUB。啊,那因为这块我不用不用给他杠对吧,这个路径自带斜线嘛。好了啊,那这回咱们来。2020这里边图片,这张图片有了是吧,我再给它删掉啊,重新来返回来啊。刷新这里面咱们再来看啊,再点击这个车我再来上传好了,还是告诉上传放出你看啊,大雄目录uplo的2020,这都是没问题的对吧,然后th Hu MB下边S-5050。
13:05
没有找到。哦,为什么没有找到,那咱们就来看一下,在零四这里边,零四这里边我给完这个pass以后来创建好pass pass这里边我是不是拼接好了这个名称啊,对吧,但是拼接好这个名称以后,它能创建路径吗?不行吧,所以在这里面是不是我也要多一个多一个什么,如果这个刀啊不对,叫feel。杠,Dollar pass,如果它存在没问题,如果它不存在,我么创建make DR,创建这个pass,然后一样07777,然后给他一个图,是不是也允许他地位创建,哎,好了,那现在我们再回来看啊,这个时候来找到我的这个202,还是把这个图片给他删掉,删掉完以后再返回来,再来刷新,点击浏览,浏览以后还是上传这个车再来一次。这回是不是完事了,返回什么东西,你看是不是上传到大熊这个目录下边,那我们对应去找啊,你看。大熊uplo的2020~200,然后有THMB是不是有了,打开以后里边是不是有S-5050杠这个图片,这是不是一个压缩版的,看到了吧?哎,这是不就OK了,哎,这就是我们图片上传和什么和我们的这个图片缩放配合着一起来使用,对吧?先上传,当我上传成功,当我上传成功以后,对吧,是不是在这里判断,如果是数组是不是上传成功,上传成功我就对会员进行什么进行说话,对吧?当。
14:25
图片上传成功对吧,则进行说法啊好了,那这就是我们图片这个。上传的函数啊,好,那OK,那这个函数只支持什么呀?只支持一个单图片呢,就是单文件上传对吧?所以大家下来可以考虑我们怎么怎么去做一个多文件的上传啊好,那这节课我们到这里。
我来说两句