# \[Rails\] Upload di un file

**URL:** <https://www.ruby-forum.com/t/rails-upload-di-un-file/82778>\
**Category:** IT\
**Created:** [January 20, 2007, 7:33pm UTC](https://www.ruby-forum.com/t/rails-upload-di-un-file/82778 "2007-01-20T19:33:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alberto\_Careccia](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/838e76/32.png) [@Alberto\_Careccia](https://www.ruby-forum.com/u/Alberto_Careccia)\
**Post date:** [January 20, 2007, 7:33pm UTC](https://www.ruby-forum.com/t/rails-upload-di-un-file/82778/1 "2007-01-20T19:33:07Z")

</div>

Ciao,  
sono una new-entry di questa ML e come tanti ho cominciato ad  
apprezzare Ruby con Rails, ma la prima cosa che ho fatto e’ stata con  
RubyCocoa un po’ di tempo fa : un parser per i file .sis del Symbian  
con la GUI in Cocoa. Con Rails sto provando a fare un’applicazione  
completa.

Oggi mi sono rincoglionito con una cosa apparentemente semplice :  
l’upload di un file con Rails.  
Per semplificare le cose mi sono fatto un controller e una view :

—\> upload.rhtml  
\<%= start\_form\_tag :action =\> “upload” , :multipart =\> true %\>  
File to Upload \<%= file\_field\_tag  
“upfile” %\>  
  
\<%= submit\_tag%\>  
\<%= end\_form\_tag %\>  
—\<  
—\> upload\_controller.rb  
class UploadController \< ApplicationController  
def upload  
if request.post?  
breakpoint  
end  
end  
end  
—\<

Dopo il submit mi sarei aspettato che params[:upfile] contenesse  
tutto quello che volevo, invece mi ritrovo un bel nil. Tutto quello  
che vorrei e’ il mio bell’oggetto File da scrivere su disco.  
Quello che mi sbaglio forse e’ non implementare nessun modello, ma  
quello che mi colpisce e’ il fatto che dopo la submit il mio browser  
non invii nessun file via POST.  
Ho controllato con wireshark (ethereal) e effettivamente il file non  
c’e’ nella richiesta!

Buon Weekend a tutti!

---

<div class="post-metadata">

**Author:** ![Alberto\_Careccia](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/838e76/32.png) [@Alberto\_Careccia](https://www.ruby-forum.com/u/Alberto_Careccia)\
**Post date:** [January 21, 2007, 6:01pm UTC](https://www.ruby-forum.com/t/rails-upload-di-un-file/82778/2 "2007-01-21T18:01:22Z")

</div>

On 20/gen/07, at 19:32, Alberto Careccia wrote:

> —\> upload.rhtml  
> \<%= start\_form\_tag :action =\> “upload” , :multipart =\> true %\>

Ehm… mi rispondo da solo, avevo letto che fosse importante passare  
come array il primo argomento nel caso di form multipart, ma ruby non  
mi accettava quasto tipo di sintassi :

\<%= start\_form\_tag {:action =\> “upload”} , :multipart =\> true %\>

ma bastava passare gli argomenti con le parentesi :

\<%= start\_form\_tag( {:action =\> “upload”} , :multipart =\> true) %\>

A volte mi confonde un po’ il fatto di usare e non usare le parentesi  
per gli argomenti, sopratutto quando dovresti rilassarti un po’  
invece di programmare 😛

Ciao.
