00:00
好,我们继续来上课,那么上节课呢,我们实现了我们单文件上传的这个功能,那么这节课我们再来实现什么我们多文件上传的功能,那么在实现多文件上传功能之前,我们先来看一下我们先如何实现在表单这一块能实现多文件上传,那么也就是说在我的配置的IP码里边,我要想实现多文件上传第一件事干嘛?我是不是把pic后面加一个中括号代表什么代表就是一个数组啊对不对,然后再往后呢,加一个什么多选的属性,叫做multi player。好,那这个时候我们再回过头来看啊。呃。我把这个函数啊注释掉了,我不调用了啊,在它下边。我再次打印一下未安装dop打印什么呢?打印这个。你们只需要看我们接收的费是什么样格式的就可以了啊来。再来。返回来刷新一下,既然能多选了,我一选择图片,这里面我一全选对吧,或者我按住CCTRL。按住CTRL,一张一张点是不是也可以。
01:01
那你就CTRL啊,手机上点是不是也可以啊,点完这三张,我一点击打开,你看是不是告诉我选择了三个文件,那么当我一点击提交的时候,这个时候你注意来看,这个时候跟我之前有什么区别,我们之前在做单文件的时候,它也是个二维数组对吧,而我做多文件的时候,它是一个三维数组,看到了吧。是不是在这里边又包含数组啊,那么你要看这两个有什么区别,如果是单文件上传的时候是怎么样的,多文件上传又是怎么样的啊,比如说在这里边。我先给大家截个图。方便一会儿我们去比对这个图啊。呃,屏幕截取。嗯,举证区。我要的就是这款内容就可以了。OK,这有张这么一个图片对吧,那么先保存了吧。保存到哪里,ONLINE0101,这里的LESSON19对吧,这个叫什么多。文件上传。文件上传返回到。
02:00
数组结果。完事完事以后,这回咱们再来看,我再给它改为单文件上传,你看又是什么样的啊,那这里边我是不是要把这个中国号给去掉,对不对,然后呢,把这个multi player也去掉,这是不是就单文件上传了,那么这个时候我们再来刷新一下选择。这里边。点击提交三文件的出是不是返回这么样一个结果对吧,那一样,这里边我给他也做个截图啊。啊,不用做截图了,这个就可以比对了,你看啊,大文件中文和多文件有什么区别。咱们这个多文件的时候返回了什么?单文件的时候返回是一个二维数组对吧?在这个pic这个数组下,Name名称对应的是一个字母串,Type对应的是字母串,Type name也是字符串,Error还是字符串,Size是不是也是字符串对不对?也就是说这里边的五个选项的每一个选项的值对应的是不是都是一个字符串对吧?当然啊,这个error和这个呃,Size是返回的整形对吧?错误号和大小是整形啊,那好,那你再来看,那如果是多文件上传呢?
03:03
不行了,这个我把它关掉了啊,没用了,因为我已经保存了,我拿这个图片来看,要么我没办法画画。找到LA19,这里边是不是有这么一张图片?那你看。如果在这多文件上传的时候,你看还是一样pic下,Pic下有什么东西,它是一个二维速度,如果单看pic往下是二维速度,如果加个费,是不是就是三维多维速度啊,对不对?哎,那你看P往下呢,对应这个name,这个name变成什么了?变成了一个数组类型,里面包含了我上传多张图片的名字,看到了吧,然后type呢,又是一个数组类型,里面包含了我多上传多张图片的什么呀,这个。类型吧,然后type name是不是我多张图片的临时名称,然后error是不是我多张图片的错误号对吧?然后同样size是不是就是我多张图片的大小啊。对不对,那你看同样跟他来比差距在哪,是不是这里边在这里边的这个每一个选项。无论是name type type name,这是不是都对应了什么?返回的都是字符串,而在这里边name type type name返回什么是不是数组?那么换句话说,我只需要做到一个什么效果呢?做到一个pic里边的内,然后让它变成一个字符串二,我是不是就可以调用单文件上传函数了呢?
04:15
对不对,你看好了啊,我在这里边,同样我去调用一下,哎。不用调用了啊,看我这里面做了一个什么东西,是不是把Dollar fields里的piic赋值给的一个feel,然后就fill的error fair的什么什么对吧,也就是把fair变成了一个一位数组嘛,那你看这里面是不是就这个意思啊,来为阿装dop。打印一个Dollar_files FS里面的什么呀?Pic是不是这个意思,我是不是把整个这一句复制给了谁?复制给了这个叫做。到了费尔变量对不对,所以这个时候你看我们再来打印啊,同样这还是一个大文件上传来,我没改啊,直接点击提交来,你看我是不是变成这样的一个数组了。对不对,那么换句话来说,针对于我多文件上传。
05:01
你看针对我多上,最终我把比如我在遍地组,我把name里面的这个零,Typeb里面的这个零,还有typeb name里的零,每一个里面的零都拿出来,能组装成一个这个样子的数组,我单文件上传函数是不是可以直接使用对吗?哎,所以对于多文件上传只是干嘛呢?我只我们只是对这种多维的数组进行什么,进行一个便利,便利完之后干嘛拼接出这种单。这个一倍的速度即可了啊,这就是我们做多维上多文件上传的一个重要的知识点啊好,那接下来我们就把它变一下吧,那一样把它缩小了,缩以后在这里边f func方式,比如多量上传,我就uplo加个S啊,那同样你要给我什么,给我pic,对吧?然后你要给我pass,然后你要给我size,然后你要给我type name。不是type name type对吧,也就换句话来说,也就是我upload里面的这些函数,你是不是同样也要给我,不是函数是这些参数对不对,那我就直接CTRLC拿过来了啊,然后放到这里面来CTRL位好吧,那拿过来以后,接下来我们要干嘛?
06:08
我是不是也可以直接先做一个赋值啊。等于等于什么呢?等于到下线F里边呢,到了pic,那错了,不用不用折算直接到了pic对吧,但这个时候它是一个二维数组吧,来你看好了啊,到了fis啊。那我们一样,呃,Fair fill不用它了啊,调用一下upload up loads pic传进来对吧?哎,传进来我在这里边开始去赋值了,那同样这块我要是多年上传来的话,我是不是就得中国号,然后呢,Ultle,好,这个时候我们再返回来再刷新选择。两个点击打开来提交来,你看最终我拿的是不是就是这样的数组,这是不是最后一个在第五第七十五行啊,在第七十五行,我们来看一下七十五行是哪里,是不是这里打印打。对不对,那也就是说在这里边我们把它复制完以后,这个S最终是一个什么,最终是一个二维的数组,对吧?其中里面呢,Name会包含两个type包含两个type name包含两个error也包含两个size是不是也包含两个,对不对,那接下来我是不是就便利就可以了,比如说在这里边我再做一个Dollar这个info。
07:17
Enforce吧,等于什么呢?等于A这么一个数组,然后for it便利便利谁呢?便利这个Dollar fair fairs里边的任何一个都可以,对吧,我便利name,哎,然后呢,我艾一个Dollar k子向的Dollar v,因为只要我们传东西,这个name就肯定是有值的,对不对,就哪怕不传,比如说在这里边啊,你看好了,我重新刷新,我什么都不传,我一点击提交。啊,语法有错,在我的第78行,因为我这个没写完,是不是好,我给他写完它啊,写完以后再来提交,提交以后你看我的这个费是不是都为空啊,是不是全为空啊,对吧,你看name里面的零是一个控制不串对吧,Typeb里的零也是控制不串,然后这个也是控制不串,是不是都为空啊。哎,然后最后error是四,是四的话,我不要紧,只要error是四,我拿到单文件里面去传的时候,单文件里面是不会判断error错误号,如果你没四是不是他也不会传了,哎,所以不影响我们啊,那这里边我就直接是什么,比如说。
08:10
我在这块叫到什么呢,到了。呃。Fuse。Fe。I,那这也相当于我新做的这么一个数组对吧?那这块啊,这个是我最后要准备返回的啊,所以我叫做in enforce了,来,来个Dollar file吧。嗯,它要是等于就等于一个aiy也等于一个数组也是我提前给它定义好一个啊好了,那F里边的。叫什么呢?叫做name啊,要是等于WV,我就直接把WV负责,然后fair file里边的type不是对,是type类型呢,就等于什么,就等于Dollar fields里边的type里边的Dollar k。对吧,哎,你当前到K循环的是零,那我拿的都是零的,你当前循环的是一,我是不是拿的都是一了,对吧,你看这里边,比如说我传一下啊,来点击浏览。
09:05
来两个。点击提交的时候,你看我最下面对吧,我我Dollar内里的Dollar v是不是直接把这个复制给了他对吧?那接下来这里边是不是我也要取零,这里边是不是我也要取零啊对不对,所以那接下来一样的道理,剩下的都是要这么写了费。里边的type name是不是也等于到了S里边的?杠,Name里边的K。这个K小写。好,再来fair里边的叫做e error,也就是我们的错误号,那就是等于到了fairs里边的ER。Pull up。然后在里边的do。还差最后一个我们的大小吧,也就是我file里边的size SI就等于Dollar files里边的SISIZ里边的Dollar了KOK,那这个时候我的这个fair速度是不是就搞定了,那我们来打印一下啊,V压杠DP打印到了费这个速度啊,因为我在循环外边,注意啊,我在循环外面,我是不是只打印最后一个对不对?好了,那现在我们再来看啊,刷新一下。
10:16
走,你有。刷新一下,点击确定来,你看我最终是不是拿到了这么样的一个数组。Type name。哪有name呀,是。Tmp对吧,哎,Type tmp。甜品。TMPT。MP杠。Name是不是这个这么写的,哎,N me啊,不能写错了啊,这里边一样叫做tmp-name OK,那这个时候我们再来刷新一下。好了,你看我是不是就返回了刚才我们看到的那个数组,对吧,你看这样的这个数组啊来。
11:02
我把它。嗯,也截个图吧。这里边。把它关掉了啊。屏幕截取矩形。这是不是我通过我循环处理这个多维。多维的数组,那最终得到了这个数组对吧,那么我在做单文件上传的时候,来你看好了,返回到这里边。Pic把这个括号去掉,这个呢,我再给它去掉,去掉以后你看我在格罗斯这里边,我是不是还有这个费,还在打印费在七十五行啊,那你看我七十五行的费跟它是不是就一样了啊。重新刷新。呃呃呃,错了啊,不是七十五行的费用,是我的第70行的费用啊,在第七行打印的这个费用跟我现在做出的是不是一样来在第70行。返回来啊,重新刷新一下。诶点击提交下面肯定会报错啊,不用管它,那你看在第70行的这个费用是不是就长的这样,跟我刚才所截的图片是不是一样的,你看好了。
12:05
你看name对应的是什么,是不是对应一个字符串,然后等于这个名称对不对,然后type是不是这个类型。然后type name是不是这个临时的文件名error为零,然后size为啥是不是做成一模一样对不对,那也就是说我每循环一次,我是不是会把这个新的这一张图片的信息组装成这么一个费啊,那组装完以后接下来干嘛,我是不是在这里面就可以调用函数了。调用。函数嘛,对吧,调用哪个函数,调用文件上传函数,文件上传函数吧,哎,也就是说在这里边我们通过upper load load来调用,那同样在调用的时候,这里面需要什么,我是不是要把F传进来。Dollar传进来对吧,这第一个,然后再来有什么呢?Dollar pass路径,Dollar size大小,还有Dollar type对吧?因为你在别人在调用我的时候,是不是把这些参数已经传过来了,对吧?那我在这里边再回过头去调用其他人的时候,我是不是把这些参数再传回去。哎,那好了,那最终它会成功的时候会返回一个数组嘛,所以我用这个ino中号,哎,再来接受,也就是说我返回的是一个二维数组,对吧,如果多年上转我返回的是一个二维速度,那把它注射掉,注射掉以后在这里面直接re TY。
13:15
好了,那现在完事了,完事以后行吗?你注意我这个Dollar feel,是不是我做成了一个数组了,对吧?做成一个数组传给了谁?传给了uplo吧?那在uplo里边我的这个feel是什么?是不是在这块又赋值了?看到了吗?所以我这样用是不好使了,对不对?哎,因为我把这个费用传给IC,而这个pic它只能当什么,当名称来用,看到了吗?当表单名来用,所以这里边我需要干嘛,需要去判断一下啊,也就是说你传过来的这个,比如说你传来pic,如果是个字符串,你像我们表单名称它肯定是个字符串,对吧?如果你传字符串我才能进行这么复制,如果你传的不是,那就可能是个数组了,对不对?所以这里边我来判断判断一下什么呢?如果呃,有了啊A-A对吧,谁呢?Dollar pic,如果它是数组的话,代表什么?代表的是多文件上传调用的对吧?多文件上传有。
14:10
调用的。调用的那么多文件上传,多文件上传调用时对吧,第一个参数会传什么?传一个数组传一个上传。图片信息的。数组啊,哎,所以这里边我就直接进行复值就可以了,就就是费等于到了pic对吧,否则。这是什么单片吗?图片。图片上传,那么是不是传的,是什么传?表单的名称是不是这个意思,哎,所以这里边把它CTRLX放到这里,OK,现在我多图片上传的功能就已经实现了,那我把这个缩小对吧,是不是配合单独的上传的功能啊,好了,这些东西还要吗?嗯。不要了啊,也不打印了,这里面呢,所有的都不打印了,我最终调用了upload传了一个pic对吧,注意我upload是调用多图片上传的功能的,对吧?然后在这里边一下,它会给我返回一个结果,但它这个结果是一个什么,是一个二维的数组吧,来打印这个结果,到了ret,好,现在我们来看啊,返回来重新刷新,这里边先看我的表单支持。
15:22
么不支持,需要给它改成中号m multi player,好,那这个时候再来刷新来点击。三张图片点击打开,打开以后告诉我干嘛,我是不是选择三张点击提交,告诉三张图片的信息是不是都是成功的,看到了吗?哎,都带有这些东西,都是数组返回是不是都是数组啊?哎,那没问题,这是三个都成功了,那我也可以在这里边去对比,在这个uplo里边,你看是不是直接有了三个。看到了吧,哎,好了,那有了三个以后,那接下来有人说了,那我们在平时用这种文件上传的时候,有可能我还传一个呢,对不对,那我传一个行不行呢?也当然行了。对吧,因为什么你不管你传几个,最终我多节上传拿到的是不是都是一个多位数组,那既然是多位数组,我在调用的时候是不是都给它便利了,便利完以后都做成了什么,都做成了一个一位数组,然后我把这个一位数组传到uplo里边去调用了,对不对,那它是一个数组类型,所以在applelo里边的第一件事就判断你传的是不是一个数组,是数组我就直接把这个名复制给他了,如果不是数组,那这个时候就开始我的表单名称,我才干嘛。
16:22
才把它复制给费用对吧,也代表的是你单独调用的只是一个单位检测转,并没有调用多位上传功能,对不对,那现在。你看我这里边只选择一个点击提交是不是也好使,对吧,你看这个数组里边零下标对应的这么一个图片的信息了,哎,那现在我多文件上传的功能是不是也实现了,那你看在这里边我刚才又传了一次,是不是又进来一个。哎,那OK,好,那这节课我们到这。
我来说两句