2

これは、ファイルをアップロードするための私の方法です:

name = file.original_filename
directory = "images/"
path = File.join(directory, name)
File.open(path, "wb") { |f| f.write(file.read) }

アップロードしたファイルの名前を変更する必要があります - 一意の名前を付けたいです。しかし、どうすればファイル名と拡張子を取得できますか?

ファイルの名前を変更する方法の 1 つは、ファイル名から拡張子を削除し (.jpg最後の 4 文字を削除)、ファイルの名前を変更してから、名前と拡張子を結合することです。

しかし、これは少し汚れた方法です。よりクリーンでエレガントなものはありますか?

4

2 に答える 2

0

これを行うのはどうですか?

File.rename(file, folder_path + "/" + new_name + File.extname(file))

たとえば、ファイルの同じフォルダーで次のスクリプトを呼び出します。

new_name = "TESTING"

File.open("test.txt") do |file|
  File.rename(file, new_name + File.extname(file))
end

ファイルの名前を次のように変更します: TESTING.txt

于 2013-03-04T17:00:18.010 に答える