以API为中心的Web应用程序文件上传

时间:2015-10-22 16:34:53

标签: php api file-upload

我正在使用PHP创建一个以API为中心的Web应用程序。我已经阅读了很多关于以API为中心的架构和设计的文章,但是我遇到了与文件上传相关的问题。

假设我有一张图片,我想将其上传到API服务器。我应该如何上传该图片以及如何接收该图片的链接?

以下是我现在要创建它的方法:

  1. 在客户<input type="file">
  2. 上使用www.domain.com选择图片
  3. 使用www.domain.com POST
  4. 将其上传到multipart/form-data
  5. 使用PUT / POST API调用将此图像发送到api.domain.com
  6. api.domain.com会将此图片保存到static.domain.com等其他服务器,并将图片的ID存储在数据库中
  7. 然后,当我需要此图片时,我可以使用GET API调用api.domain.com,我会收到图片的网址(类似static.domain.com/image.jpg
  8. 有条件的问题:

    • 这种方法是正确的还是我做错了?
    • 如果我的应用程序很小,我是否需要一台aditional服务器来存储上传的文件,或者我可以直接在API服务器上存储文件?
    • 如果我将图像存储在与API服务器相同的服务器上,如果图像网址看起来像api.domain.com/image.jpg,那会不会很奇怪?

    P.S:我们可以跳过很多与API相关的事情,因为我只需要了解如何处理文件上传。

1 个答案:

答案 0 :(得分:1)

你还没有真正说过你将在这里实现什么样的API,所以我认为它只是一个宁静的API。

  • 这种方法是正确的还是我做错了?

不,我不会说你做错了。您实际上将使用POST发送文件。

  • 如果我的应用程序很小,我是否需要一台aditional服务器来存储上传的文件,或者我可以直接在API服务器上存储文件?

是的,它允许您将其存储在同一台服务器上,我不明白为什么不这样做。如果应用程序很小,我怀疑你会使用大量存储空间。

  • 如果我将图像存储在与API服务器相同的服务器上,如果图像网址看起来像api.domain.com/image.jpg那么会不会很奇怪?

api.domain.com/image.jpg技术上只是您使用和GET / POST数据连接到API的URL。这并不意味着该文件将成为该URL。 API可以返回如下:

{
   type: "IMG", 
   id: "1", 
   url: "example.com/uploads/image.jpg"
}

我希望这会有所帮助,甚至一点点!