【问题标题】:API-centric web application file upload以 API 为中心的 Web 应用程序文件上传
【发布时间】:2016-01-22 00:42:35
【问题描述】:

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

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

这是我现在想创建的方式:

  1. 在客户端www.domain.com 上使用<input type="file"> 选择图像
  2. 使用POSTmultipart/form-data 将其上传到www.domain.com
  3. 将此图像与 PUT/POST API 调用一起发送到api.domain.com
  4. api.domain.com 会将此图像保存到另一个服务器,例如static.domain.com,并将图像的 id 存储在数据库中
  5. 然后,当我需要这张图片时,我可以使用 GET API 调用api.domain.com,我会收到图片的网址(类似于static.domain.com/image.jpg

其他问题:

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

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

【问题讨论】:

    标签: php api file-upload


    【解决方案1】:

    您还没有真正说明您将在这里实现什么样的 API,所以我假设它只是一个安静的 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"
    }
    

    我希望这会有所帮助,哪怕是一点点!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 2013-11-05
      • 2012-08-05
      • 2018-06-29
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      相关资源
      最近更新 更多