Проблема из-за загрузки файла через $ _POST - PullRequest
1 голос
/ 01 марта 2011

я пытаюсь поймать загрузку файла из моего Flash-файла, он отправляет его с $ _POST в мой файл upload.php.

Возможно, кто-нибудь найдет мою ошибку, файл не был загружен.

$data = $GLOBALS["HTTP_RAW_POST_DATA"];
$fp = fopen("upload/".$session."/".$wkid."/".$data, "wb");
fwrite($fp, $data);
fclose($fp);

Заголовок POST выглядит так:

http://192.168.1.161:81/upload.php

POST /upload.php HTTP/1.1
Host: 192.168.1.161:81
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: PHPSESSID=9873ceb6399eafefb91dac3b942d0b78; __utma=48168551.1670897330.1298964838.1298964838.1298968544.2; __utmc=48168551; __utmz=48168551.1298964838.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); phpMyAdmin=f54c4ad7eb21706a57b4b6e5058dd2cfbea1cc32; pma_lang=de-utf-8; pma_charset=utf-8; pma_mcrypt_iv=UX8VuU94d%2BA%3D; pmaUser-1=SNAWkCqwJCg%3D; pmaPass-1=eV3KOmsoVPlmV1Z%2BYkskZQ%3D%3D; pma_fontsize=82%25; pma_theme=original; __utmb=48168551.2.10.1298968544; session=9873ceb6399eafefb91dac3b942d0b78; wkid=314; uid=25c75688b1e929d494fea85a0d6a8439
Referer: http://192.168.1.161:81/upload.swf
Content-type: application/octet-stream
Content-length: 73371

PNG


HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 08:35:03 GMT
Server: Apache/2.2.9
X-Powered-By: PHP/5.2.6-1+lenny9
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 35
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Content-Type: text/html

С уважением,

Ответы [ 2 ]

1 голос
/ 01 марта 2011

Вы должны попробовать прочитать необработанные данные записи с помощью:

$data = file_get_contents("php://input");
0 голосов
/ 01 марта 2011

Я думаю, что проблема может быть в этой части:

$fp = fopen("upload/".$session."/".$wkid."/".$data, "wb");

$data было установлено на полезную нагрузку необработанного POST. И с помощью этого вызова fopen вы пытаетесь создать имя файла с необработанным байтовым потоком (возможно, более 10 КБ) в его имени. Хотя это зависит от реальной файловой системы, на большинстве серверов BSD / Linux она, скорее всего, выйдет из строя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...