:image => StorageRoom::Image.new_with_filename(path)
我必须得到图像的路径。到目前为止,我已经手动指定了路径,它工作,现在我已经放入heroku但它显示加载错误 - 没有这样的文件存在。 如何使用浏览按钮获取本地系统的路径值。
答案 0 :(得分:0)
File.expand_path
参考:http://saaridev.blogspot.com/2006/11/ruby-finding-absolute-path-of-running.html
答案 1 :(得分:0)
您的问题可能与路径名无关,但与Heroku有一个只读文件系统这一事实有关。如果您尝试在Heroku应用程序中将文件写入磁盘,则它无法正常工作 - 该文件将无法保存。
例外是“temp”目录。您可以在那里保存文件,但不保证它们的持续时间超过单个请求的持续时间。
您尝试打开的文件是否实际保存在您的Git仓库中?如果是这样,它将在你的Heroku应用程序的磁盘上,你应该能够打开它。
要查看Heroku实例上的文件系统布局,您可以创建一个控制器方法,如:
render :inline => Dir['**/*'].inspect
答案 2 :(得分:0)
您不需要完整路径。至于客户端计算机中的文件路径与文件上载有关,路径无关紧要,因为它会为用户带来安全风险。
大多数现代浏览器都不会发送文件上传文件路径。您可以使用Javascript或Flash获取路径,但我仍然没有看到执行此操作的逻辑。
当用户点击提交按钮时,浏览器应该至少向您发送包含文件数据的文件名以及一些其他信息,例如mime类型。假设您拥有接近无限的内存资源,您的Web服务器会将文件写入磁盘或在内存中处理它。有关详细信息,请查看RFC 1867文件上传内容。