2009-12-08 3 views
0

기본적으로 타사 API 플래시 파일과 상호 작용하여 HTTP POST 요청을 내 서버에 보냅니다.플래시 POST 요청 (이미지)에서 RAW 데이터 읽기

crossdomain.xml 파일이 필요하기 때문에 필자는 올바른 경로를 사용하고 있으며, POST 변수의 내용을 추가하기 전에는 해당 파일을 추가 한 이후로 설정된 4 개의 변수가 있으므로, 이러한 POST 변수는 응용 프로그램에서 파일에 대한 기본 정보를 제공하기 위해 보내지 만 실제 플래시에서 전송되는 이미지를 저장하려면 RAW POST 데이터를 실제로 읽어야합니다. 나는 3 가지 방법이 있습니다 알고 있어요

... $GLOBALS['HTTP_RAW_POST_DATA']

  • $HTTP_RAW_POST_DATA which is probably the same as the first
  • 어떤 이유를 들어
  • file_get_contents('php://input')
    1. , 이러한 "작업"의도. "일"이란 말은 그들이 설정되어 있지 않다는 것을 의미합니다. var를 버리면 아무것도 얻지 못합니다.

      php.ini에 설정해야 할 설정이 있거나 플래시 응용 프로그램이 실제로 실제 이미지를 보내지 못하고있을 수 있습니까? 나는 반쯤 인기있는 API이기 때문에 올바른 일을하고 있다고 생각한다. 그리고 다른 몇 사이트에서 사용하기 때문에 나는 그들의 목적이 옳다는 것을 확신한다.

      API 키를 필요로하지 않습니다.

    답변

    1

    HTTP_RAW_POST_DATA (look here)을 사용하려면 php.ini에서 always_populate_raw_post_data=1을 설정해야합니다. 또한 upload_max_filesize을 파일에 충분한 크기로 설정해야합니다.

    그러나 POST 데이터가 일반적으로 파일을 보낼 때 사용되는 multipart/form-data으로 전송되면 HTTP_RAW_POST_DATA는 작동하지 않습니다.

    파일을 비표준 방식으로 보내지 않는 한 실제로 업로드를 검색하려면 $_FILES을 사용해야합니다. PHP는 자동으로 파일 업로드를 임시 위치에 저장하고 위치를 $_FILES 변수에 배치합니다. move_uploaded_file 기능을 사용하여 원하는 위치로 이동할 수 있습니다. 예를 들어 :

    +0

    '$ _FILES'는 공백이었습니다. 아마도'php.ini' 설정을 확인한 후에 모든 테스트를 다시 시도 할 것입니다. 감사. –

    +0

    그는 플래시가 아닌 일반 형식을 요구하고 있습니다. 플래시로 만든 이미지의 스냅 샷을 PHP로 보내면 먼저 수집해야하므로 $ _FILES를 직접 사용할 수 없습니다. @meder : 그렇지 않은 것 같습니다. 써드 파티 API의 이미지를 살펴 보자. 그러면 php.ini를 편집하여 HTTP_RAW_POST_DATA를 받아야한다. – Hafiz