2012-05-03 7 views
-2
<?php 

    if(!isset($_REQUEST['filename'])) 
    { 
    exit('No file'); 
    } 

    $upload_path = dirname("files"). '/'; 

    $filename = $_REQUEST['filename']; 

    $fp = fopen($upload_path."/".$filename.".wav", "wb"); 

    ***fwrite($fp, file_get_contents('php://input'));*** 

    fclose($fp); 

    exit('done'); 

?> 

Я использую пример this, попробуйте записать аудио и отправить его на сервер. С PHP он отлично работает, но я хочу преобразовать этот код в Ruby. В этой строке есть (php: // input), что это значит? И что я должен писать в ruby ​​конвертировать PHP-код в Ruby

fwrite ($ fp, file_get_contents ('php: // input')); Спасибо

+0

Я не знаю Ruby, но php: // input get вы являетесь сырым телом HTTP-запроса –

+0

'php: // input' объясняется здесь: http://php.net/manual/en/wrappers .php.php – hakre

ответ

4

Очевидно, что рубин не имеет обтекателя потока php:// - это специфичный для PHP. Таким образом, вы не можете переносить его буквально.

php://input объясняется здесь: http://php.net/manual/en/wrappers.php.php

PHP: // вход только для чтения поток, который позволяет считывать исходные данные из тела запроса.

Так, например, если это запрос на запись (что обычно имеет место), для Rails 3, документация request.raw_post находится на http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-raw_post.

+0

если я изменюсь, как будто это правильно? File.open (путь, "wb") {| f | f.write (raw_post())} – fish40

+1

@ fish40: Я думаю, вы должны сначала изучить некоторые основы рубинов, например, как программировать в рубине и с рельсами. Я связал вам API, который должен предоставить всю информацию, которую вам нужно знать в рамках вашего вопроса. Если ваш вопрос на самом деле заключается в том, как писать рубиновый код, я не могу помочь вам, поскольку я вообще не знаю рубина, извините. – hakre

Смежные вопросы