php - http:文件上传背后发生了什么?
PHPz
PHPz 2017-04-11 10:38:10
[PHP讨论组]

我虽然知道,文件上传的一般过程,即在页面表单中加入属性:enctype=multipart/form-data,然后通过 来选择文件,即可提交文件到指定服务器。在此过程中,提交的表单会与一般post有所不同,http主体大概是:

Content-Type: multipart/form-data; boundary=---------------------------14579331036932498511351460782
Content-Length: 418
-----------------------------14579331036932498511351460782
Content-Disposition: form-data; name="userfile1"; filename="备注说明.txt"
Content-Type: text/plain
1.±ê×¢ÒÔiPhone6s ÆÁÄ»³ß´çΪ±ê×¼£»
2.Èç¹ûÐèÒª²»Í¬³ß´çµÄicon£¬ÔÙ¸øÎÒ˵¡£
-----------------------------14579331036932498511351460782
Content-Disposition: form-data; name="hehe"
tewtw
-----------------------------14579331036932498511351460782--

在这里,我想探寻的是,服务器端如何接受数据流,并将数据流作为文件保存起来,也就是说从http的层面来说,如何操作这一切?而我搜索到的资料、博客多是从语言层面来解释,而语言之间多是直接做好了封装,如PHP中的$_FILES,node中多是引用formidable,直接一步到位,而未能解释里面的原理。

不知有大神能否指点一二?

PHPz
PHPz

学习是最好的投资!

全部回复(1)
迷茫

话说PHP里面确实是语言层面已经都做好了你没法看,但是node.js里面你可以直接看源代码的呀:

比如 busboylib/types/multipart.js
,又如 formidablelib/multipart_parser.js

而上传文件的协议标准上面已经有人说了,见 RFC 7578

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号