Subir mp3 a base de datos y guardar el nombre en un campo


#1

hola a todos estoy tratando de subir un mp3 a mi servidor y guardar el
nombre del archivo en mi base de datos he encontrado un totorial con el
cual logro subir el archivo al servidor pero no logro guardar el nombre
en la base de datos si alguien me puede ayudar en mi modelo tengo el
siguiente codigo

class Musica < ActiveRecord::Base
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

end
en el controlador lo siguiente

class UploadController < ApplicationController
def index
render :file => ‘app\views\upload\uploadfile.rhtml’
end
def uploadFile
post = Musica.save(params[:upload])
nuevo = Musica.new(params[‘nombre’=>‘oscar’]);
nuevo.save
render :text => “File has been uploaded successfully”
end
end
y la vista lo siguiente

File Upload

<% form_tag ({:action => 'uploadFile'}, :multipart => true) do %>

Select File : <%= file_field 'upload', 'datafile' %>

<%= submit_tag "Upload" %> <%end%> nose si lo estoy haciendo mal o tengo que usar un plugin gracias de antemano saludos

#2

perdon mi controlador esta de la siguiente forma
class UploadController < ApplicationController
def index
render :file => ‘app\views\upload\uploadfile.rhtml’
end
def uploadFile
post = Musica.save(params[:upload])

render :text => "File has been uploaded successfully"

end
end

perdon por el error pero he probado varias cosas y nada gracias por la
ayuda


#3

Oscar N. wrote:

perdon mi controlador esta de la siguiente forma

¿Tienes una tabla Musicas en tu BD?


#4

si tengo una bd llamada musicas y tiene un campo llamado image


#5

Hola,

pero no logro guardar el nombre en la base de datos

podría ser porque en ningún momento le estás diciendo que haga
absolutamente nada con tu base de datos?

end

En ese método estás leyendo un fichero temporal (el parámetro upload) y
creando un fichero binario con el nombre y el contenido del upload. No
estás haciendo nada contra la base de datos.

Antes de cerrar el método prueba a hacerle algo así como

Musica.create(:name=>name)

(si el campo no se llama “name” en la tabla cambia :name por el valor
apropiado)

suerte,

j


javier ramírez

…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez