Rails 4,回形针,上传FTP.如何重命名



我正在使用Rails 4和Paperclip。

beacuse我需要在FTP服务器上上传文件,我正在使用这个很棒的宝石:

https://github.com/xing/paperclip-storage-ftp

在本地中,一切正常,但是在FTP中,我无法使用此代码重命名文件:

  def rename_myfile
    if self.rename.present?
      path = self.myfile.path
      FileUtils.move(myfile.path, File.join(File.dirname(myfile.path), self.rename))
      self.myfile_file_name = self.rename
    end
  end

我有一个错误:

否这样的文件或目录 @ sys_fail2-(/myfiles/19/original/myfileoriginalname.jpg,/myfiles/19/original/myfilerenamednamedname.jpg)

如何使用fileutils.move进入FTP ???

创建和删除运行良好!

https://github.com/xing/paperclip-storage-ftp/issues/28

您必须构建通往文件的完整路径,而不仅仅是文件的dirname和name。将您的FileUtils.move行更改为:

orig_full_path = Rails.root.join "public", myfile.path # assuming they're saved in your public directory
new_full_path = Rails.root.join "public", File.dirname(myfile.path), self.rename
FileUtils.move orig_full_path, new_full_path

这里的想法是获取文件的绝对路径。在您仅给Fileutils此路径之前:/myfiles/19/original/myfileOriginalName.jpg,这意味着它将在文件系统根部中查找文件夹/myfiles中的文件。但是它们实际上在您的栏杆文件夹中。因此,您应该使用Rails.root.join获取真正的绝对路径:/Users/me/my_rails_project/public/myfiles/19/original/myfileOriginalName.jpg

最新更新