我在互联网上搜索了几个小时试图完成这项工作,但我没有任何运气。
我上传一个文件并尝试将其写入 public/uploads 目录(已经存在)
name = archivo.original_filename
directory = "public/uploads"
path = File.join(directory, name)
Dir.mkdir(directory) unless File.directory?(directory)
File.open(path, "wb") { |f| f.write(archivo.read) }
我得到了例外
No such file or directory - public/uploads/SERVITEST.xls
我尝试使用绝对路径并从 /tmp 目录中读取文件,但没有成功,我得到了这个异常:
Permission denied - oo_7598_6341257208
我真的不知道发生了什么,因为在每个文件上传示例中,我看到控制器可以看到公共目录
提前致谢
问候
解决方案:
经过一夜好眠和几杯咖啡后,我解决了“没有这样的文件或目录”的问题:
directory = Rails.root.join("public","uploads");
“权限被拒绝”问题是 roo gem 的问题,因为它试图访问未定义的 ROO_TMP 环境变量:
export ROO_TMP=/tmp
感谢大家的帮助:D