この記事: http://en.wikipedia.org/wiki/HFS_Plusによると、ファイル名には NUL を含む任意の文字を使用できるはずです。ただし、OS API では、従来の理由から一部の文字が制限される場合があります。
サーバーまたはクライアントの問題である可能性があります。アプリケーションをデバッグして、提供されrequest.request_parameters
たファイル名に有効なファイル名が含まれていることを確認してください。
アップロードしたファイルを URL で使用する場合は、アップロードする前に文字変換する必要があります。これにより、問題も解決します。これを行うには、次の拡張機能を使用できます。
module TransliteratePaperclip
def transliterate_file_name(paperclip_file)
paperclip_file=[paperclip_file] unless paperclip_file.is_a?(Enumerable)
paperclip_file.each do |file|
filename=read_attribute("#{file}_file_name")
if filename.present?
extension = File.extname(filename).gsub(/^\.+/, '')
filename = filename.gsub(/\.#{extension}$/, '')
self.send(file).instance_write(:file_name, "#{filename.parameterize}.#{extension.parameterize}")
end
end
end
end
# include the extension
ActiveRecord::Base.send(:include, TransliteratePaperclip)
このコードを/config/initializers/paperclip_transliterate.rb
ペーパークリップ モデルに挿入します。
before_post_process { |c| transliterate_file_name(:file) }
どこで:file
によって定義された属性ですhas_attached_file
。