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
中上传文件的方法
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/
是否可以有一个基于 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
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/