2012-06-14 6 views
0

J'essaie de lire dans un fichier audio de type wav ou amr à partir d'un formulaire HTML en utilisant Rest Client. J'ai le code pour le faire en PHP.Comment envoyer des données binaires avec Rest Client?

$filename = $_FILES['f1']['name']; 

public function getFile($filename) { 
     if (file_exists($filename)) { 
      $file_binary = fread(fopen($filename, "r"), filesize($filename)); 
      return $file_binary; 
     } else { 
      throw new Exception("File not found."); 
     } 
    } 

J'ai besoin de convertir ce code Ruby et je ne parviens pas à le faire comme je suis un novice par rapport en matière de Ruby.

+0

data = params [: f1] file = Fichier.open (données, "rb") {| io | io.read} url = "...." response = URL du fichier RestClient.post,: Autorisation => "Numéro du support {@ access_token}",: Accepter => 'application/json',: Content_Type => 'audio/wav' rescue => e @error = e.message assurer retour erb: discours fin – user1455140

Répondre

1

Selon RestClient's repo:

def self.post(url, payload, headers={}, &block) 
    Request.execute(:method => :post, :url => url, :payload => payload, :headers => headers, &block) 
    end 

Ce bout de code envoie simplement un fichier:

file = File.open('path/to/file.extension', 'r') 
RestClient.post("your_url_to_the_endpoint", file) 

donc je suppose tout ce que vous avez encore besoin de faire est de définir les en-têtes:

begin 
file = File.open(params[:f1], "rb") 
url = "...." 
response = RestClient.post url, file, {:Authorization => "Bearer #{@access_token}", :Accept => 'application/json', :Content_Type => 'audio/wav'} 

rescue => e 
@error = e.message 
ensure 
return erb :speech 
end 
Questions connexes