2011-01-24 12 views
5

Sto usando il seguente file uploader con Rails 3: https://github.com/blueimp/jQuery-File-UploadRails Accesso un file caricato e salvandolo da graffetta

L'uploader sul lato client sta funzionando benissimo. Posso vedere nelle Rails file seguente viene pubblicato quando ho caricare un file di log:

Started POST "/attachments/upload" for 127.0.0.1 at Mon Jan 24 14:15:25 -0800 2011 
    Processing by AttachmentsController#upload as */* 
    Parameters: {"_http_accept"=>"application/javascript", "authenticity_token"=>"F1h9pvCZL9HUgTjwCIAMc%252BW1cYwx7eBOPwThHfbS5ZU%253D", "file"=>#<ActionDispatch::Http::UploadedFile:0x1076a6d48 @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"file\"; filename=\"joecocker.jpg\"\r\nContent-Type: image/jpeg\r\n", @original_filename="joecocker.jpg", @tempfile=#<File:/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/RackMultipart20110124-12264-rbtnth-0>>} 

Il problema che sto avendo è che sono in grado di salvare il file caricato a graffetta.

ho Ried:

@attachment = Attachment.create(:attachment => File.open(params[:file].tempfile.path)) 
@attachment = Attachment.create(:attachment => params[:file].tempfile.path) 

E né lavoro. Paperclip inserisce un nome per il file allegato "RackMultipart20110124-12264-rbtnth-0"

Qualche idea/suggerimento su come salvare il file su graffetta? grazie

risposta

10

Basta usare params[:file] per accedere al file. Non c'è bisogno di fare params[:file].tempfile.path. Paperclip richiede un oggetto pieno come File.

0

E 'difficile da dire senza vedere il codice modello, ma in base a quello che vedo che vorrei provare:

@attachment = Attachment.create(params[:file]) 
1

Potrebbe essere il caso di avere problemi di autorizzazioni. Paperclip per impostazione predefinita crea una cartella con il nome del sistema nella cartella pubblica e lì salva tutto l'allegato. Verifica l'autorizzazione per la directory del tuo progetto. Per scopi di test impostarlo su 777

In secondo luogo non è necessario salvare manualmente gli allegati. Una volta che hai usato paperclip, salverà automaticamente il file allegato. Per fare in modo che tutto funzioni, è necessario garantire questi passaggi.

  1. aver aggiunto questa linea per il vostro modello, has_attached_file: avatar
  2. È stato creato migrazione graffetta ed è eseguire la migrazione È possibile generare la migrazione con le seguenti guide comando g graffetta "Nome modello" avatar (dove avatar verrà utilizzato per elaborare gli allegati)
  3. nella pagina vista in cui si sta caricando l'uso di file basta usare f.file_field:. avatar
  4. nel vostro show file/index uso image_tag: avatar.url (: piccolo), presumo l'attaccamento delle immagini e hai applicato stile alla tua immagine come il pollice piccolo ecc.

Dopo aver verificato il passaggio precedente, esegui il programma.

Problemi correlati