Flash POST isteği RAW veri okuma (görüntüler)

1 Cevap php

Ben temelde benim sunucuya HTTP POST istekleri göndermek için üçüncü bir tarafa API flash dosyası ile etkileşim ediyorum.

Ben bir crossdomain.xml dosyası gerektirir ve ben POST değişkenleri bölümü hiçbir şey gösterilmesini olduğunu ekledi önce, ancak ben dosya olan 4 değişkenler olduğunu ekledi beri, çünkü ben biraz doğru yolda olduğumu biliyorum seti, bu POST değişkenleri bana dosyayla ilgili temel bilgileri vermek üzere uygulama tarafından gönderilen .. ama aslında aslında Flash tarafından gönderilen görüntüyü kaydetmek için RAW POST verileri okumak gerekir vardır.

Ben 3 yolu vardır farkında değilim ...

  1. $GLOBALS['HTTP_RAW_POST_DATA']
  2. $HTTP_RAW_POST_DATA which is probably the same as the first
  3. file_get_contents('php://input')

Sebebi ne olursa olsun, ne bu "iş". "Iş" derken onlar ben hiçbir şey almak onları dökümü VAR zaman ayarlı değil demek.

O php.ini Ben ayarlamanız gerekir, ya da belki de Flash uygulama gerçekten gerçek görüntü göndermiyor bir ayar var olabilir mi? Ben bu yüzden sağ onların ucunda eminim bir yarı popüler bir API var, çünkü doğru olanı yaptığını düşünüyorum ve birkaç diğer siteler tarafından kullanılır.

Ve onlar da bir API anahtarı her türlü gerekmez.

1 Cevap

Sen always_populate_raw_post_data=1 kullanmak için php.ini ayarlamak gerekir HTTP_RAW_POST_DATA (look here). Ayrıca, dosyalar için yeterince büyük bir değere upload_max_filesize ayarlanmış olduğundan emin olun.

POST veri dosyaları gönderirken multipart/form-data, hangi genellikle kullanılan olarak gönderilir ediliyor Ancak, HTTP_RAW_POST_DATA hiç çalışmaz.

Eğer standart dışı bir şekilde dosya gönderme sürece, gerçekten $_FILES yüklenenler almak için kullanıyor olmalıdır. PHP otomatik olarak geçici bir konuma dosya yüklemeleri kaydeder ve $_FILES değişkene konuma yerleştirir. Sen olmak istediğiniz yere taşımak için move_uploaded_file işlevini kullanabilirsiniz. Örneğin:

$place_to_put_the_file = "/my_directory/image.jpg";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
 echo "File is valid, and was successfully uploaded.\n";
} else {
 echo "Possible file upload attack!\n";
}