2011-09-07 21 views
10

Sto utilizzando Thoughtbot Paperclip gem per gestire i caricamenti di file.Paperclip pulisce automaticamente i nomi dei file?

ho constatato che quando aggiungo un file con spazi nel nome del file, esso viene memorizzato con gli spazi sostituiti con caratteri di sottolineatura.

Questo va bene.

Ho anche provato a caricare un file con caratteri speciali come ~ e così via e sono stati tutti sostituiti con caratteri di sottolineatura.

Grande. Esattamente quello che voglio.

Ma perché sta succedendo?

Tutto quello che sto facendo nel mio modello è ...

has_attached_file(
    file_somefile, 
    :path => ":rails_root/public/system/other/path/elements/:basename.:extension" 
) 

è il comportamento predefinito di questo Paperclip?

+0

Quale sistema operativo? Su OS X ricevo nomi di file con gli spazi e le tilde originali. –

+0

Sto usando OS X, Paperclip 2.3.1.1 – Ethan

+0

Hmm. Non ho impostato esplicitamente il percorso nell'app che ho testato, ma a parte questo, non sto facendo nulla. Al momento non posso controllare la mia versione, ma non ho specificato la versione nel Gemfile, quindi probabilmente 2.4.1ish. –

risposta

6

OK, dopo un po 'più di ricerca, ho trovato this blog post che dice, in basso, che Paperclip esegue effettivamente una minima elaborazione dei nomi dei file.

11

Per aggiungere un po 'più di informazioni, questo accade in Paperclip::Attachment#cleanup_filename in cui/[& $ +, /?:; @ = <> [] {} \ | \\^~% #] i restricted_characters default/sostituzione con underscore

non è documentato, ma è possibile specificare l'opzione per: restricted_characters graffetta per cambiare ciò che viene sostituito, per esempio

class User < ActiveRecord::Base 
    attr_accessible :avatar 
    has_attached_file :avatar, :restricted_characters => /@/ # only replaces '@' 
end 
+0

Aggiorna collegamento a [Paperclip :: Allegato # cleanup_filename] (https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/attachment.rb#L605) – nnattawat

Problemi correlati