00:00
好,我们重新来看啊,刚才我们写代码的时候,这段是不是没写呀,是干嘛的。它是配置,这说了,这是个repository仓库临时目录。这临时目录是干嘛用的啊,诶这个需要给大家解释一下。我们文件啊。这样吧,我也不用他了。啊。我的画图。扎卡。我这边。这是什么客户端?这是什么服务器?大一些吧。
01:05
这是客户端。这个呢?父亲。好,现在我们要上传一个文件呢,比如说。这是个文件。这是那个文件,这是我要上传的文件。那么他要实现文件上传的话,它是怎么上传的?到底是怎么样上传的呢?它是这样吗?大家看一下啊,我这边有一条网线,这边有个网线,网线咱们这样吧,换个颜色假设这个吧。
02:06
再往前。这这这客户端接了一个网线啊,这是服务器也接了一个网线,然后这是我们整个互联网,我们大家知道互联网上它肯定不是说一根线呢。对不对,这是我们的网络。那么这个网络网络我们用个它。用个。这个有个尖儿是吧。就他吧。就这样吧,就比如说就是我们的网络。那我想说的是。这里边儿啊,真正在传输的时候。我们的数据在传输的时候。
03:03
是这样过来的吗?他通过这根线直接抓。把这个文件传给他了,他给这儿保存。就保存这样一个文件了,是这样吗?可不是啊,可不是把这个文件一下就都通过这一根线就传过来了。那是怎么做的,它真正上传是这样做的,实际上这个文件。再往外发的时候啊,就已经被分割了。分割成了很多数据包。每一个数据包上都有一个编号,比如这个123456,分割好了,然后上传的时候是。都从这出是没问题的,可是有可能一号数据包走的是哪儿啊一号数据包。
04:10
哟。这个这个这个。一号税高,他是这样过来的,也不好。他是这样过来的。二号数据包。二号数一包,它是这样过来的。那三号数据包有可能走的是这根线。
05:01
那四号数据包有可能走的是。这根线。等等五号六号,那可能他们每一个数据包走的这个网络线路是不一样的。那走的网络线路不一样,会出现什么情况,你比如说有可能这儿很堵。它传输就慢,这上面这根线上的数据传输的数据量比较大,它走的也比较慢。这是一号的。那有可能三号的是这儿,他穿还过来了。他是不塞没堵车,是不是直接还过来了。也就是说,这些数据包真正到达服务器的时候。并不是按序到达的,一号先到,然后二号,二号到了三号,三号到了四号等等,它是每一个数据包到达服务器的时间不一样,也不是按序的。
06:11
有可能一号数据包最后才到的。那所以说这里边儿啊,对于服务器来说,它对这个上传文件的接收。就引入了一个临时文件的概念,这个临时文件你不是先过来三号了吗?好,三号我这儿有编号吗?先搁这儿了,又来了五号,哎,我搁这儿了,又来了二号了,诶,我。把二号的和三号的什么给它接一块儿了,哎,又来了一号的一二和三接一块的,又来了七号的往后放,这些数据包全部到了以后,我才能给你组建成一个。
07:00
文件。所以这个文件是什么?就是临时文件。临时文件存放在一个临时目录里边,其实这个啊,我们大家应该见过,你在网上下载电影的时候,比如你下载一个。是吧,2MA2M这个VB这种格式的电影。你要下载这样一个电影。它是一下就下载的,就是这个格式吗?不是你会发现它下载过程里边是不是另外一种。另外一种格式的文件。下载完了,诶最后形成一个你那RMVB,但是呢,中间那个临时那个文件发现没了。对不对,那就是个临时文件。所以说我们现在啊。不是说我们现在我们刚才那个也是他也是有临时文件的。
08:02
也是有临时目录的,临时目录在哪?临时目录在我们的tomcat。临时目录。实际上这这这就是我们这个,这是项目的临时目录在这呢。用的就是这个临时目录,默认情况下用的这个临时目录,我们可以给他指定临时目录。比如说我现在啊。我们现在要把这个代码给它改了,改成什么。指定临时目录。我拷贝把那个留下来啊。把这个删掉了。
09:08
在这个基础上改。怎么指定呢?我们看着。通过factory.set repository可以指定。factory.set repository。好,那我们就。找到factory。Fighter在这儿呢是吧,啊,这个也不加一了,都没加编号是吧啊。TRY第二。Set reporter,这里边参数是个file,是不是reporter?我们。
10:00
啊。临时文件对吧,当然现在没有这个临时文件,创建一个我一个。这里边儿直接写个pass,这个pass我们没有。Contest第二。Get real pass,我要在。当前像不像啊,我建一个临时目录tmp。我要建一个历史目录。哦,Pass出名的是吧,我们就要tmp pass。好。
11:00
我给这儿建一个。Folder tmp。好了,我这个建好了。这就可以了,不过啊,这里边儿还有一个API,我们看一下。我们打开这个API看一下啊。啊,我们找那个disk disk刚才不是找的是disk吗?Disk file item factory是吧,你看它里边的。方法啊,还有个方法叫set。Size threshold。这是设置什么大小?Thhol是什么?阈值边界值,设置边界值的大小,这干嘛的呢?你看,Set the size thhold beyond which file a written direct to Dis。
12:09
就是说我设置的这个大小,一旦你上传的文件超过这个大小了。那么他会把这个文件。会建立一个临时。文件,然后。把这个文件这个先放到临时文件。但是你指定的临时目录里边的那个临时文件。如果小于这个值,它是直接在内存里边。也就说不往硬盘写,你注意你只要有临时文件呢,它肯定是写到硬盘了呀,对不对,所以这设置的是一个边界值。Set size shot,我们可以给他指定,当然你也可以不指定啊。这是设置。
13:04
啊,临时文件。设置。这个。叫什么使用?临时文件的。这个。边界值吧。边界值。大于该值。上传文件会先。保存在。临时零件中小于实际是小于等于啊,咱们就小于了,小于开值。
14:09
否则吧,否则将。嗯,直接写入到内存。factory.set size th,这样吧,我们给他来个两招。或者一兆,它这个单位是什么单位是。四杰啊。单位字节,那1024。这是K是吧?乘1024。
15:00
乘一,这是不是一兆啊?这是一兆啊。人类设置。边界那就这了。我们下边来看一下啊,下面来看一下,嗯,二。碳林好。我们这样啊。这个找一个稍大一些的,大一些的在素材这儿有啊。
16:07
素材我们这样详细列表就可以看到大小一兆大于一兆的,那这个。两兆了,是不是它肯定大于了,好打开。就它了啊,我们要上船了。看着这儿,看着这儿。嗯。二。这是不是有个ta看着这现在什么也没有啊?注册。看到没?这是不是有个临时文件。是不是出现了临时文件了?然后我们看看上传成功了没有。有没有OK了,成功了,那如果我们上传的啊。
17:05
把这个把这个给它删掉没了啊,如果我们上传的。不大于一兆,那不大于一兆,那重新来。不大意,这是肯定不大意。是不是这样获取了是吧,走。呀。看看有没有,这边没有吧,是不是因为它直接写到内存了。OK了。哎呀,不过有一点呀,不好,怎么不好了。我们这种临时文件写完了,是不是他又该给它删除掉啊,这临时文件,临时文件你用完了应该把它删掉,能不能把它删掉呢?怎么删呢。当然可以删,删除是用的这个API。
18:02
删除啊,用的是他file item。里边有个delete,看着delete。这是delete the underlying storage。For the file item including any,任何一个相关的什么。临时磁盘文件。包括任何一个相关的临时磁盘文件,和谁和你当前这个item相关的,我都能给你删掉。那好了。谢娜。什么叫这个用完了,你这流关闭以后,是不是就是我们这个临时文件就没用了呀,所以我就应该写到这删除。临时文件。
19:00
item.delete。诶,重新发布过了啊,重新发布过了,我们看到这儿看到这儿。后退。找他对吧,看着。走。成功了没有呀,不好说,因为我们这儿原来是不是就有他呀。哎,这个已经上传成功了,没问题是吧,图片的把这个删掉重新来。重新来啊,我们刚才没看到他是不是再看啊。F刷新项看好走。诶,还没有啊,成功了没有成功了没有成功了,那为什么刚才看不见太快了,因为我们传的文件太小啊,而且还是什么等级的。
20:07
是不是我是本地文件的,所以他这个很快我们根本就看不到。但是我们没删除的时候,是不是已经看到它了,所以肯定有这个文件,而且肯定也被删掉了。OK了,这就是我们的关于临时文件的指令。
我来说两句