【发布时间】:2016-03-25 11:04:18
【问题描述】:
是否有可能拥有一个基于水晶的网络服务器来处理文件上传?我一直在查看文档,以及许多水晶网络框架。我在任何地方都没有找到任何对简单文件上传功能的引用。
这可能吗,还是我必须寻找其他地方来处理我的图像上传?
【问题讨论】:
标签: http file-upload crystal-lang kemal
是否有可能拥有一个基于水晶的网络服务器来处理文件上传?我一直在查看文档,以及许多水晶网络框架。我在任何地方都没有找到任何对简单文件上传功能的引用。
这可能吗,还是我必须寻找其他地方来处理我的图像上传?
【问题讨论】:
标签: http file-upload crystal-lang kemal
Crystal 目前不支持 multipart/form-data (https://www.rfc-editor.org/rfc/rfc1867)。它应该在标准 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/
【讨论】: