首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何接受webmachine-ruby中的多部分文件

如何接受webmachine-ruby中的多部分文件
EN

Stack Overflow用户
提问于 2016-05-03 05:15:30
回答 1查看 89关注 0票数 0

我正在尝试使用PUT将一个文件上传到webmachine资源。其想法是用一个file_id更新模板资源。

代码语言:javascript
复制
module App::Resources
  class UpdateTemplateResource < TemplateResource

    def allowed_methods
      %W(PUT)
    end

    def content_types_accepted
      # What to do here?
    end

    private

    def template_id
      request.path_info[:id]
    end

    def template
      @template ||= ::App::Models::Template.find_latest_version_by_guid(id)
    end
  end
end

我已经找到了接受json类型请求的示例,但没有接受multipart。该文件不是保存在服务器中,而是转换后发送到另一个服务以进行存储。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-04 17:33:48

Webmachine::Request对象包含主体,实质上是具有边界的多部分请求。如果我们知道要发送哪种类型的文件,就可以解析它。

主体边界包括与其关联的内容类型、文件名和param。然后启动实际文件。

如果JSON

代码语言:javascript
复制
lines = []
request.body.to_io.each {|l| lines << l if l =~ /\[/ }
json = JSON.parse(lines[0])

If pdf文件

代码语言:javascript
复制
lines = request.body.to_io.read
pdf_as_string = lines.match(/^(\%PDF-)(.*\s)*(\%\%EOF\s)$/)[0]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36996099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档