我正在使用 PHP 创建以 API 为中心的 Web 应用程序。我已经阅读了很多关于以 API 为中心的架构和设计的文章,但我遇到了与文件上传相关的问题。
假设我有一张图片,我想将它上传到 API 服务器。我应该如何上传该图片以及如何接收该图片的链接?
这是我现在想要创建它的方式:
- 使用
<input type="file">
选择图像在客户端www.domain.com
- 上传到
www.domain.com
使用POST
与multipart/form-data
- 使用 PUT/POST API 调用将此图像发送到
api.domain.com
-
api.domain.com
会将此图像保存到另一台服务器,如static.domain.com
并将图像的ID存储在数据库中 - 然后,当我需要这张图片时,我可以使用 GET API 调用
api.domain.com
我会收到图片的网址(类似于static.domain.com/image.jpg
)
附加问题:
- 这种方法是正确的还是我做的完全错了?
- 如果我的应用程序很小,我是否需要额外的服务器来存储上传的文件,或者我可以直接在 API 服务器上存储文件?
- 如果我将图像存储在与 API 服务器相同的服务器上,如果图像 url 看起来像
api.domain.com/image.jpg
会不会很奇怪? ?
P.S:我们可以跳过很多与 API 相关的内容,因为我只需要了解如何处理文件上传。
最佳答案
你还没有真正说明你将在这里实现什么样的 API,所以我假设它只是一个 restful API。
- 这种方法是正确的还是我做的完全错了?
不,我不会说你做错了。您基本上会使用 POST 发送文件。
- 如果我的应用程序很小,我是否需要额外的服务器来存储上传的文件,或者我可以直接在 API 服务器上存储文件?
是的,它允许您将其存储在同一台服务器上,我不明白为什么不可以。如果应用程序很小,我怀疑你会使用大量存储空间。
- 如果我将图像存储在与 API 服务器相同的服务器上,如果图像 url 看起来像 api.domain.com/image.jpg 会不会很奇怪?
api.domain.com/image.jpg 在技术上只是您连接到 API 和 GET/POST 数据的 URL。这并不意味着该文件将成为该 URL。 API 可以像这样返回:
{
type: "IMG",
id: "1",
url: "example.com/uploads/image.jpg"
}
我希望这能有所帮助,哪怕是一点点!
关于php - 以 API 为中心的 Web 应用程序文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33286068/