PHP Drag & Drop Качване на файлове с ExtJS

Имам джаджа, която използвам, която прави заявка към метод, който създадох в Zend контролер. Потребителят качва изображение на сървъра и jpeg файлът се изпраща POST на сървъра в тялото на заявката.

Как получавате достъп до това от страна на PHP? Погледнах в $_POST, $HTTP_RAW_POST_DATA (след настройката на php.ini), $_FILES и опитах:

$data = file_get_contents( 'php://input' );

Всички тези глобални и променливи са празни. Използвам charles proxy и можете да видите заявката и двоичните данни на изображението в нея. Ще свържа екранна снимка веднага щом мога (imgur не работи).

въведете описание на изображението тук

Редактиране: Екранна снимка

Редактиране: Стигам до някъде:

public function filesAction() {

        $request = $this->getRequest();
        $params  = $request->getParams();

        if ( $request->isPost() ) {

                    $httpContent = fopen( 'php://input', 'r' );
                    echo stream_get_contents( $httpContent );

        }
}

Това връща обратно към мен двоичните данни в отговора сега, просто трябва да използвам fwrite() или нещо подобно, за да създам изображението на сървъра и след това мога да премина към FTP, където трябва да отиде.


person Caley Woods    schedule 09.10.2012    source източник
comment
Тъй като използвате ZF, $this->getRequest()->getRawBody(); връща ли данните от качването на изображение?   -  person drew010    schedule 10.10.2012
comment
@NeilMcGuigan Не е дубликат, това изпраща двоични данни през XHR и няма да попълни $_FILES, данните трябва да бъдат прочетени от поток и това е качване на няколко файла чрез плъзгане и пускане.   -  person Caley Woods    schedule 10.10.2012
comment
@drew010 Не, погледнах getRawBody() и засега също е празен. Опитах да използвам php://input и read_stream_contents и това също не работи.   -  person Caley Woods    schedule 10.10.2012