【问题标题】:How to access uploaded files in Ruby如何在 Ruby 中访问上传的文件
【发布时间】:2011-02-07 05:54:29
【问题描述】:

我正在尝试在 ROR 应用程序中使用 Java 上传器(因为它可以轻松上传整个目录)。选定的上传器附带一些 PHP 代码,可将文件保存到服务器。我正在尝试将这段代码翻译成 Ruby,但在这一点上很困惑:

PHP 有一个非常方便的超全局变量——$_FILES——它包含通过 HTTP POST 方法上传到当前脚本的所有文件的哈希值。 Ruby 似乎没有类似的资源。缺少这些,访问和保存上传文件的最佳方式是什么?

我正在使用 JavaPowUpload 上传器 (http://www.element-it.com/OnlineHelpJavaPowUpload/index.html)。

【问题讨论】:

    标签: java php ruby file-upload translation


    【解决方案1】:

    ruby on rails 允许您使用应用程序根目录通过#{RAILS_ROOT} 获取存储的文件(无论您决定将其放在哪里)。

    查看this 教程。不是最漂亮的方法,但它应该让您了解需要做什么。文件上传后,只需获取正确的路径并从那里进行处理即可。

    【讨论】:

    • 我实际上已经完成了该教程,并使用自定义多部分表单从头开始创建上传表单。我在这里遇到的挑战是 Java 上传程序创建了自己的 POST 事件,所以我无权访问 ROR 参数。所以我认为我需要一个直接的 Ruby 解决方案。
    • 所以,java 位正在发布到您的应用程序,对吧?因此,您应该仍然可以从 rails 读取适当的 POST 参数。您只需要确保您知道来自 java 位的参数名称。那,或者您可以,如您所说,在 rails 应用程序中编写整个上传部分。
    • @Jeff,即使 Java 应用程序创建了自己的 POST,您仍然可以将多部分数据作为文件访问,您只需要弄清楚它们在 params 散列中的位置。从控制器调用logger.warn(params.inspect),然后查看日志,从那里获取。
    • 是的,弗拉德用更简洁的措辞把它钉牢了。 +1
    • 谢谢弗拉德和多斯。我走得更远,但还没有完全弄清楚。我看到了参数哈希,但输入字段显示为临时文件,并且缺少上传的文件。我还需要弄清楚身份验证。 authentication_token 未验证。我会再用头撞墙一两天,希望能把这一切弄清楚。再次感谢您为我指明正确的方向。我真的很喜欢 Ruby,但有时会错过 PHP 的文档和健壮性:php.net/manual/en/features.file-upload.post-method.php
    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 2017-07-04
    • 2017-08-30
    相关资源
    最近更新 更多