代码之家  ›  专栏  ›  技术社区  ›  christophercotton

如何防止Rails处理大型XML Post

  •  3
  • christophercotton  · 技术社区  · 15 年前

    在我们的Rails应用程序中,我们有许多动作执行常规的webapp动作。但是,我们只有一个操作可以接受大型XML文件。我希望防止Rails将XML解析为参数。相反,我希望能够获取URL参数(/documents/id/action),然后将XML文件写出到特定的目录中。如何防止Rails处理它?

    如何定义处理此问题的操作?

    def handle_xml
       # what to put here
    end
    

    上载是使用content-type:application/xml完成的,它是单个文件,而不是多部分表单的一部分。curl语句示例如下:

    curl-H 'Accept: application/xml' -H 'Content-Type: application/xml' -X POST -d '<?xml version="1.0" encoding="UTF-8"?><test></test>' http://0.0.0.0:3000/controller/handle_xml
    
    4 回复  |  直到 12 年前
        2
  •  1
  •   Tomek    12 年前

    request.raw_post

        3
  •  0
  •   Ryan Bigg Andrés Bonilla    15 年前

    该操作应将其作为文件接收(通过多部分表单上载的方式),然后将其存储为临时文件。

        4
  •  0
  •   nictrix    15 年前

    您是否尝试发送在HTTP URI请求中有一个变量的XML文件?所以有点像

    @xml_file = xml..xml...xml...
    
    parameters => {
      query => {
        xml_file => @xml_file
      }
    }
    Httparty.post("url", parameters)
    

    那么在你的方法中:

    def handle_xml
      @xml_file = params[:xml_file]
      @xml_file.save (or whatever you want here..)
    end