daily pastebin goal
95%
SHARE
TWEET

Untitled

a guest Apr 16th, 2018 46 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. def subida_archivo
  2.  
  3.     #Directorio temporal (si no existe lo creamos)
  4.     tmpdir   = Pathname.new("public/tmp/")
  5.     fotosdir = Pathname.new(tmpdir + "fotos" )
  6.     Dir.mkdir(tmpdir) unless tmpdir.directory?
  7.     Dir.mkdir(fotosdir) unless fotosdir.directory?
  8.  
  9.     if params[:Filedata].kind_of? StringIO
  10.       # Si es un string guardarlo en un fichero temporal
  11.       tf = Tempfile.new('foto',fotosdir)      
  12.  
  13.       # Guardarlo en el fichero
  14.       tf.open # { |f| f <<  params[:Filedata].read }
  15.       tf << params[:Filedata].read
  16.       tf.close
  17.       archivo = tf.path
  18.      
  19.     elsif params[:Filedata].kind_of? Tempfile # and params[:Filedata].respond_to?('path')
  20.       # Si es un fichero, lo copiamos a la carpeta temporal
  21.       File.move(params[:Filedata].path, fotosdir)
  22.       archivo = fotosdir + Pathname.new(params[:Filedata].path).basename   #copiarlo a public/tmp/fotos
  23.      
  24.     else
  25.       error = true    
  26.       @mensaje = params[:Filedata].class.to_s + " no es un formato valido"
  27.     end
  28.    
  29.     unless error
  30.       raise "No se ha guardado #{archivo}" unless File.exist?(archivo)
  31.         @archivo = sanitize_filename(params[:Filedata].original_filename)
  32.       else
  33.         raise "Ocurrio un error durante la conversión del archivo"
  34.       end
  35.     end      
  36.     render :action => "seleccionar_archivo"
  37.   end
RAW Paste Data
Top