Crystal-lang file/image 上传 http 服务器

Crystal-lang file/image upload http server

是否可以有一个基于 crystal 的网络服务器来处理文件上传?我一直在查看文档和许多 crystal 网络框架。我没有在任何地方找到任何关于简单文件上传功能的参考资料。

这可能吗,还是我必须寻找其他地方来处理我的图片上传?

crystal 目前不支持 multipart/form-data (https://www.rfc-editor.org/rfc/rfc1867)。它应该出现在 std IMO 中。

但现在,Serdar Dogruyol 似乎已经为此投入了一些时间:

更新答案:自 2016 年 11 月起,您可以使用 Kemal v0.16.1 和 Crystal 0.19.4 进行文件上传。

以下是您的使用方法

post "/upload" do |env|
  parse_multipart(env) do |f|
    image1 = f.data if f.field == "image1"
    image2 = f.data if f.field == "image2"
    puts f.meta
    puts f.headers
    "Upload complete"
  end
end

这是在 shivneri framework

中上传文件的方法
class FileController < Controller


  @[Worker("POST")]
  @[Route("/upload")]
  def upload_file
    path_to_save = File.join(Dir.current, "upload/upload.png")
    field = "fort"
    if (file.is_exist(field))
        file.save_to(field, path_to_save)
        return json_result({
            message: "file saved"
        })
    else
        result = {
            message: "file not saved",
        }
        return json_result(result)
    end

  end
end

有关详细信息,请访问 shivneri 文档 - https://shivneriforcrystal.com/tutorial/file/