Forum: Rails-ES problecon subida de archivo

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D3021a7a8bb0fd97204837a0e6d31622?d=identicon&s=25 Francisco Iglesias (metalpancho)
on 2007-03-06 17:12
Hola amigos. miren tengo un problema..

resulta que haciendo una aplicacion en ruby tengo el siguiente problema
al querer subir un archivo. me sale
---
 Errno::EACCES in FormulariosController#create

Permission denied - ./public/files/
---



 en el controller tengo el siguiente codigo

def create
    @formulario = Formulario.new(params[:formulario])

  if @formulario.save
  File.open("#{RAILS_ROOT}/public/files/#{@filename}", "wb") do |f|
      f.write(@params[:formulario][:direccion_doc].read)
    end
      flash[:notice] = 'Formulario was successfully created.'
      redirect_to :action => 'list'
    else
      render :action => 'new'
    end
  end

y el fomulario tengo esto

<h1>Formulario</h1>

<% form_tag :action => 'create' do %>
<table border="0">
<tr>
<td>Cliente</td>
<td><select name="formulario[cliente_id]">
   <% @clientes.each do |cliente| %>
       <option value="<%= cliente.id %>"
         <%= ' selected' if cliente.id == @formulario.cliente_id %>>
         <%= cliente.rut %>
       </option>
   <% end %>
  </select>
</td>
</tr>
<tr>
<td><label for="formulario_numero_form">Numero</label></td>
<td><%= text_field 'formulario', 'numero_form'  %></td>
</tr>
<tr>
<td><label for="formulario_nombre_form">Nombre</label></td>
<td><%= text_field 'formulario', 'nombre_form'  %></td>
</tr>
<tr>
<td><label for="formulario_total_form">Total</label></td>
<td><%= text_field 'formulario', 'total_form'  %></td>
</tr>
<tr>
<td>Archivo</td><td><%= file_field 'formulario', 'direccion_form'
%></td>
</tr>
</table>

  <%= submit_tag "Ingresar" %>
<% end %>



bueno queria saber que puedo hacer para poder subir un archivo ya que en
otra aplicacion que solo tengo el campo parapoder subir un archivolo
sube sin problemas.. pero aca me tira error...

ahh y lo ultimo..

cuando hago esto por IE me aparece asi ( C:\Documents and
Settings\Administrador\Escritorio\dunbar docs\116814.pdf )

pero en firefox aparece (116814.pdf)

a que se debe eso???
49b6123803e4f327144e991daab62f77?d=identicon&s=25 Daniel Rodriguez Troitiño (Guest)
on 2007-03-06 22:20
(Received via mailing list)
On 3/6/07, Francisco Iglesias <ruby-forum-incoming@andreas-s.net> wrote:
>
>       flash[:notice] = 'Formulario was successfully created.'
> <% form_tag :action => 'create' do %>
>   </select>
> <tr>
> <% end %>
> Settings\Administrador\Escritorio\dunbar docs\116814.pdf )
>
> pero en firefox aparece (116814.pdf)
>
> a que se debe eso???
>

El primer fallo se debe posiblemente a que el usuario que ejecuta tu
código (el servidor web, muy posiblemente) no tiene permisos de
escritura en ese directorio. Deberías dar permisos de escritura de ese
directorio al usuario que vaya a ejecutar la aplicación web.

Lo segundo supongo que te refieres al campo original_filename del
objeto que representa al archivo en el servidor. Eso es así porque los
estándares parecen que no están claros en ese aspecto, y IE6 e
inferiores manda la ruta completa, mientras que (casi) todos los
demássólo mandan el nombre del fichero (creo que IE7 ahora sólo manda el
nombre del fichero). La única forma de obtener el nombre es eliminar
"a mano" la ruta de los ficheros enviados con IE. El problema que te
encuentras es que "C:\Carpeta\Archivo.txt" es un nombre de archivo
totalmente válido en Unix, aunque por suerte Unix solo lo utilizan
unos cuantos "raros" ;) y son lo bastante inteligentes como para no
utilizar esos nombres.
This topic is locked and can not be replied to.