saludos
estoy haciendo una aplicacion web donde necesito subir archivos.
tengo una rutina que los sube que encontre en la web pero tengo un problema con ella muy grave, si el documento no existe no me da un error. les explico
si en mi formulario donde coloco la ruta del archivo a subir lo dejo en blanco, el metodo que me da el nombre original del archivo me dice que no esta definido para vacio "", si coloco un texto cualquiera como aosfbgosdfn tambien me da es error, pero si coloco algo que comience con c:\ el metodo asume que es un archivo asi no se ejecute la subida.
lo que necesito es verificar que el archivo sea realmente subido, una vez ejecutada la rutina.
la subida la ejecuto con
<%= file_field 'upload', 'datafile', :size => 60 %> en la vista
<%= submit_tag "Adjuntar", {:onclick => 'return validar_campo()'}%> validar campo es una funcion javascript para verificar que no me deje el campo en blanco
esto es lo que tengo en mi controlador
post = Datafile.save(@params["upload"])
estructura_archivo = @params["upload"]
nombre = estructura_archivo['datafile'].original_filename
y esto lo que tiene mi modelo
def self.save(upload)
name = upload['datafile'].original_filename
directory = "public/data"
# create the file path
path = File.join(directory, name)
# write the file
File.open(path, "wb") { |f| f.write(upload['datafile'].read) }
end
como dije antes quiero verificar que el archivo efectivamente ha subido al servidor.
espero me den alguna sugerencia, gracias por su tiempo