2010-10-05 13 views
0

Modèle ..téléchargement de fichier avec le reste client

def self.upload_client_document(params) 
    client_document = self.new :uploaded_data => params[:Filedata],:client_id => params[:client_id],:document_name => self.default_document_name,:document_description => self.default_description_name 
    client_document.rename_document_name 
    client_document.save! 
    # RAILS_ROOT + client_document.public_filename This will return path to file like 
    # C:/projects/test_project/client_documents/0000/0012/A100-bal.csv 
    RestClient.post 'http://demo.testltd.com/V12345/search.aspx?username=test1&password=test2', 
    :upload => File.new(RAILS_ROOT + client_document.public_filename) 
end 

Obtenir erreur Errno :: ENOENT (Aucun fichier ou répertoire - C: /projects/test_project/client_documents/0000/0012/A100-bal.csv):

Mais le fichier est-il dans le dossier ...

Toute idée? Quel est le problème avec ce code? Tout ce que j'ai besoin de modifier pour rest-client?

Répondre

-1

File.new crée un fichier. Vous voulez File.read

RestClient.post 'http://demo.testltd.com/V12345/search.aspx?username=test1 & password = test2', : upload => File.read (RAILS_ROOT + client_document Nom_fichier_public)

Egalement: RAILS_ROOT est également déprécié. Utilisez Rails.root En outre: client_document.public_filename ne doit pas être approuvé pour ne pas inclure quelque chose, par exemple. "../../"

... alors ...

: télécharger => File.read (Rails.root.join (File.basename (client_document.public_filename)))