0
:image => StorageRoom::Image.new_with_filename(path)

我必须得到图像的路径。到目前为止,我已经手动指定了路径并且它有效,现在我已经放入了 heroku,但它显示加载错误 - 没有这样的文件存在。如何使用浏览按钮获取本地系统的路径值。

4

3 回答 3

0
File.expand_path

参考:http ://saaridev.blogspot.com/2006/11/ruby-finding-absolute-path-of-running.html

于 2012-07-25T12:01:40.473 回答
0

您的问题可能与路径名无关,而与 Heroku 具有只读文件系统这一事实有关。如果您尝试在 Heroku 应用程序中将文件写入磁盘,它根本不起作用——文件将不会被保存。

例外是“临时”目录。您可以将文件保存在那里,但不能保证它们的持续时间超过单个请求的持续时间。

您尝试打开的文件是否实际保存在您的 Git 存储库中?如果是这样,它将在您的 Heroku 应用程序的磁盘上,您应该能够打开它。

要查看 Heroku 实例上的文件系统布局,您可以创建一个控制器方法,例如:

render :inline => Dir['**/*'].inspect
于 2012-07-25T12:09:38.947 回答
0

您不需要完整路径。就客户端机器中的文件路径而言,对于文件上传而言,路径是无关紧要的,因为它会给用户带来安全风险

大多数现代浏览器不会发送文件上传的文件路径。您可以使用 Javascript 或 Flash 获取路径,但我仍然看不到这样做的逻辑。

当用户点击提交按钮时,浏览器至少应该向您发送文件名和文件数据以及一堆其他信息,如 mime 类型。假设您有近乎无限的内存资源,您的 Web 服务器会将文件写入磁盘或在内存中处理它。查看RFC 1867以了解有关文件上传的更多信息。

于 2012-07-25T13:32:52.417 回答