请教一下如何写一个通过 HTTPS 协议传输文件的接口,保存到服务器上,不使用界面,其他人调用这个接口就可以上传文件,有大佬能指点指点吗
![]() | 1 Yourshell 2020-02-19 12:32:45 +08:00 要不先去学习下基础? |
![]() | 3 webshe11 2020-02-19 12:55:26 +08:00 如果 WebDAV 也算接口,启动 WebDAV。 |
![]() | 4 izoabr 2020-02-19 13:15:55 +08:00 先了解一下 HTTP 协议,以及里面的 POST 怎么用 |
![]() | 5 Tink PRO 这是最基础的文件上传啊 |
6 zifangsky 2020-02-19 13:28:22 +08:00 你应该一一致谢对你有帮助的人 |
![]() | 7 blu10ph 2020-02-19 13:43:41 +08:00 Multipart/form-data |
![]() | 8 pytth 2020-02-19 14:04:55 +08:00 ``` <?php //初始化 CURL $ch = curl_init(); //目标服务器地址 curl_setopt($ch, CURLOPT_URL, '接收端接口'); //设置上传的文件 curl_setopt($ch, CURLOPT_POST, true); $data = array('name 值' => new CURLFile('绝对路径')); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_exec($ch); curl_close($ch); ?> ``` |
9 deplives 2020-02-19 14:28:07 +08:00 这边建议您先学习一下《计算机网络》这门课程呢亲 |
![]() | 10 DelayNoMay 2020-02-19 14:29:15 +08:00 最近刚好做了一个 golang 写的 http 文件服务,可以上传,下载,删除文件 |
11 TowerLi OP @CEBBCAT 大佬,我错了,另外这些天看了很多,跟着菜鸟教程的代码实现了一个 servlet 的 jsp 页面上传文件,总体来说还是看不太明白本质,想着如果不用界面的 form 表单提交该怎么做呢? 他们提示的 spring-boot 的框架应该是最好的选择吧,现在企业里面应该都用,没用过,好难上手,都是我天资愚钝,看那么久都不会。 |
![]() | 12 ipwx 2020-02-19 14:35:18 +08:00 @TowerLi "不用界面的 form 表单" 都不用浏览器了,你怎么提交不是都可以么?直接 POST 走起,或者上 WebDAV 协议。除非你想要在网页上隐藏 form 表单偷偷上传?不要意思浏览器不允许那么做。 |
13 fool079 2020-02-19 14:51:20 +08:00 @TowerLi 用 form 表单只是表示 post 时的 body 是按照 form 的 enctype 类型来进行提交,你可以自己利用 FormData 来构造需要的内容,效果是一样的。只是前者简化了你的操作 |
![]() | 14 CEBBCAT 2020-02-19 14:58:21 +08:00 ![]() @TowerLi #11 不要那么灰心丧气,你也没有 [错] ,初学者都是在 [试错] 。上传文件的本质是通过约定好的协议发送一个文件(这里是 HTTP(S)协议)。显然 form 表单是利用了 HTML 中的 form 结构,让浏览器发出符合约定的 HTTP 包。后端程序再按照约定好的数据包结构解析网络流量,最后将获得的文件内容该存的存,该计算的计算。 我先后学习过 C、C#、Java、Python、Go 等语言,现在的工作主要使用 Go 语言,Spring 我也了解过一点点,国内确实非常流行,这意味着你能找到很多教程和能 Google 到别人的 [试错] 。 我认为编程的难处不在于框架的学习,在于编程的思维。学习能力这东西,上帝有的给的多,有的给的少,我想你应该发掘自己的长处。 我现在大四,远远担当不了你说的“大佬”,大家一起努力吧~ |
![]() | 15 pytth 2020-02-20 08:05:05 +08:00 via iPhone php curl 模拟表单提交 |
![]() | 16 zjyl1994 2020-02-20 09:46:34 +08:00 可以考虑开一个 POST 接口,从 body 里读数据写到硬盘里。https 的话,看 webserver 怎么配置就好了,和你程序部分没关系 |