2012-12-06 2 views
0

나는 웹 사이트와 모바일 앱을 모두 원하기 때문에 클라이언트 용으로 작성한 애플리케이션 용 API를 만들고 있습니다. API와 응용 프로그램은 Codeigniter 프레임 워크를 사용하여 PHP로 작성되었습니다.PHP에서 cURL을 통해 멀티 바이트 데이터 보내기

입력 파일을 사용하여 응용 프로그램을 통해 파일을 업로드하고 싶습니다. 그런 다음 $ _FILES 변수에 파일을 가져올 수 있도록이 파일을 cURL을 통해 API로 보낼 수 있습니까?

이상적으로는 POST 메서드를 사용하고 싶지만 필요한 경우 PUT 등을 사용할 수도 있습니다.

감사

S

=== 업데이트 ===

나는 API로 응용 프로그램에서 파일을 전달하는 방법을 알고

- 내 질문의 추력 방법과 더 있습니다 그런 다음 API에있는 파일을 구문 분석합니다. 양식을 사용하여 파일을 업로드하면 $ _FILES에 임시 파일 참조가 생깁니다.이 파일을 에뮬레이트하고 싶습니다.

+0

정확히 원하는 것은 무엇입니까? CodeIgniter에서 입력 파일에 액세스하는 방법에 대한 질문입니까? – Vicary

+0

아니요. PHP 물건 만 사용하여 API에서 파일을 검색하는 방법을 설정하는 중입니다. Codeigniter를 수행하는 방법을 배울 수 있습니다. 양식을 게시 한 경우 파일은 $ _FILES에 있습니다. 이것은 API에서 가능하지 않으므로 어떻게해야합니까? – RiggerTheGeek

+0

당신의 말로는 CodeIgniter가 슈퍼 글로벌 $ _FILES를 숨기고 있으며 API의 현재 구현으로 액세스 할 수 없다는 것입니다. CodeIgniter 위키를 한 눈에 보았을 때 입력 파일을 처리하는 모듈/플러그인이있는 것으로 보입니다. 너가 원하는게 그거야? – Vicary

답변

0
<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_VERBOSE, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)"); 
curl_setopt($ch, CURLOPT_URL, _VIRUS_SCAN_URL); 
curl_setopt($ch, CURLOPT_POST, true); 
// same as <input type="file" name="file_box"> 
$post = array(
    "file_box"=>"@/path/to/myfile.jpg", 
); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
$response = curl_exec($ch); 

?>

참조 : http://dtbaker.com.au/random-bits/uploading-a-file-using-curl-in-php.html

0

추가] a를 '@'파일 경로 전에 문자는 파일을 업로드합니다.

경우에 따라 입력 파일에서 tmp_name을 사용하십시오.

들어오는 파일이 POST를 통해 'input_file'이름으로 전송된다고 가정합니다.

$curl = curl_init(/* Your URL goes here. */); 

curl_setopt_array($curl, array(
    CURLOPT_POST => true, 
    CURLOPT_POSTFIELDS => array(
     'file' => "@$_FILES[input_file][tmp_name]" 
    ) 
)); 

curl_exec($curl); 

희망이 있습니다.

관련 문제