00:00
下面我们来看一下spring VC里边这个文件的上传,Spring VC是通过multipart这个主件来完成的文件的上传,实际上呢,这个multivo是一个接口,看一下。这是一个接口,接口当然需要实现类CTRLT。Spring Mac内部提供了两个实心类,其中有一个叫commons multipar,那么看这个意思就能知道,是吧?它依赖的是阿帕奇的commons file upload的主件,那我们呢,就用这个来完成文件的上传。默认情况下,Spring mvc没有装配任何的multiparver,所以说我们需要在spring mvc配置文件里边来配一个multi part reserve的一个实现类,那我们用的呢,就是这个commons multi part reserve,当然在这个之前我们需要加入对应的加包。
01:04
好的。把架包加进去,把这个s multi pass reservevo配置好,这样的话,我的这个spring mvc框架就具备了文件上传的能力了。下一个问题,我在目标方法里边,我如何得到那个文件上传的信息啊,比方说文件名,文件类型,文件大小,文件对应的输入流,诶这个时候我们只需要用这样类型的一个参数叫multi part file这样的一个参数就可以了,看到了吧,下面实践起来。首先加入架包,找到我们的open source。Feel upload。Control c。我们知道这个commons它依赖于IO是吧,IO也复制过来,这样好,下一步呢,在spring mvc配置文件里边去配置那个multi pass。
02:11
Multiparovo。配置一下band class comments。Multipart。CTRLC。第一个字母小写。我们需要来配置一些基本的属性。Property,比方说默认的自编码。Utf杠八。再比方说上传的文件的大小啊等等等等是吧,我再配一个其他属性,我就不再一个一个配了哈,Value以自己为单位一零。
03:04
22411KBOK,我们最大上传大小的话呢,就是这么大。这个配置好了,那下边我要去写一个目标方法。在这里。Public string test。Fair upload吧,File upload return,我return一个什么呢?我return一个success。诶,我需要完成文件的上传,那我需要有一个form,我们前面实际上写过一个是吧。CTRLC。粘贴,不过这块应该写成什么,Test file upload。
04:03
好的,FDC都没问题。回到我们这个里边来。Control c。At request。Mapping加上,然后呢,At request,诶,Request有一个d string的D,还有一个是at。Request叫什么呀?叫feel,诶注意这个类型叫multi。Part fair,好了,Set out,我打印一下D。加D,再来看一看这个文件的名字,Get文件原始的名字,Film name。
05:07
我们还可以获取到这个文件所对应的输入流out点。Get a dream。Input stream好了,其他呢,我就不再一个一个写了哈。我们可以参看一下multi part five。这个接口看有哪些,比方说是不是空啊,这个文件的这个大小啊,包括文件所对应的这个BAT数组啊,诶等等等等。好了,我们回来。又写完了是吧,跑一下看看效果。走起。
06:01
找到我们的这个啊。Index。好了,看这个文件,我们还用桌面上这个,诶桌面上那个ABC呢。让我给删了是吧,这里边儿有。Files ctrl c,粘贴好的再来。ABC。好了,我们来写一个ABC。Summit看哦,我没有去写那个success那个页面吧,是吧。这个下边我并没有去写这个success页面,所以说的话呢,会有这样404的一个错误,不过我们看控制台打印。打印。DC可以的,原始文件名是可以的,而且这个输入流也是可以的,有了输入流以后,我们就我们不就可以进行正常的文件的上传了吗?对吧,这个问题好改,怎么改啊。
07:03
加一个页面就可以了。家长。比方说这个叫H4配置,这就可以了。对,看一下。刷新OK没问题是吧,这样呢,这个文件的上传就实现了。好的,我们来看一下。原始页面实际上这块啊,也有一个上传操作,当时是为了。测试哪个来着,还记得吗?为了测试这个叫。我回来叫HTTP吧,还记得吧,这个呢。我是把。呃,整个表单给搞成了一个string形,当然你也可以是一个BA形,但是从这个里面你还得去解析哪一个是。
08:00
文件语哪一个是我们一般的这个表单语,所以说用这个http message converter是做不了文件上传的,清楚了吧,文件上传还得使用我们这个。A multi part。而我们用这个,呃,Http message converter却可以去做文件下载吧,这个我们在前面已经试验过了。好的,这样呢,关于这个文件上传啊,就说完了,留给大家一个小问题,大家说我要是有多个文件需要上传的话,应该怎么办呢?
我来说两句