![]() |
Adjuntar archivos 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 |
Re: Adjuntar archivos Sinceramente, te recomiendo usar el plugin attachment_fu, si le preguntas a google estoy seguro encontraras mucha documentación al respecto. Ahora existe un dilema respecto a este asunto de la subida de ficheros por rails, y eso se debe a que cada vez que alguien sube un fichero, el servidor (o uno de los mongrels) queda bloqueado hasta finalizar la subida del fichero, para evitar este bloqueo, la comunidad de RoR sujiere utilizar otro framework como "Merb" y el plugin attachment_fu modificado que se encargue de hacer este tramite sin bloquear el servidor, busca mas información respecto a ese asunto en google, espero la información te sirva. saludos |
| La zona horaria es GMT -6. Ahora son las 03:20. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.