FastApi-15- 文件上传 -3

文件保存
前面我们已经学习了文件的上传,多个文件上传,以及文件对象的常用属性获取。但是实际开发中通常需要在上传文件后对文件进行保存,今天我们就一起来看看。
代码
复制代码
执行上传
选择两个文件进行上传

查看当前路径下的 file
目录

可以看到,文件已经上传成功。
Q&A
Q:对于超大文件应该如何处理呢?
明显的,上面的代码对于超大文件的处理已经显得力不从心了,具体时间为什么呢?因为文件对象的 read
方法是将前端传过来的文件读到内存中,如果是很大的文件就会将内存撑爆。
就算你的服务器内存够大,那也会存在这个问题。而且成本很高。再或者你限制上传文件的大小,那对当前的内存也是亚历山大,而且可能会影响其他服务的运行。
最优的解决方案就是分片读取,分片保存。
代码
复制代码
如上代码中的
@@@@@@
区域,每次读取1Mb
,写入文件,即可实现分块读取上传。
效果

信息展示页面

保存成功的图片
感谢您的阅读,别忘了关注,点赞,评论,转发四连哟!
版权声明: 本文为 InfoQ 作者【Python测试和开发】的原创文章。
原文链接:【http://xie.infoq.cn/article/9f06c1c0113ab4ba771cc5f8b】。文章转载请联系作者。
评论