2016-07-06 3 views
0

imageUploader.php을 통해 이미지 파일을 서버에 업로드하려고합니다. 내 각진 스크립트 및 PHP 스크립트에서 이미지를 업로드해야합니다. 제 각도 HTTP 요청을 성공적으로 이미지를 업로드하지만 PHP 스크립트는 이미지 파일을 업로드하지 못했습니다.curl 요청을 사용하여 PHP 이미지 업로드

이 각 요청입니다 :

fd = new FormData(); 
fd.append('file', file); 

    $http 
    .post(uUrl, fd, { 
     transformRequest: angular.identity, 
     headers: { 
      'Content-Type': "multipart/form-data" 
     } 
    }) 

이는 PHP를 요청입니다

$data['file'] = new CurlFile($data_string['tmp_name'], $data_string['type']); 

    if (! isset ($this->conType)) 
     $this->conType = 'multipart/form-data'; 
    $ch = curl_init ($this->baseUrl ); 
    curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
    curl_setopt ($ch, CURLOPT_POST, 1); 
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $data); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
    $this->addHeader ('Content-Type', $this->conType); 
    curl_setopt ($ch, CURLOPT_HTTPHEADER, $this->headerArray); 
    $result = curl_exec ($ch); 

    public function addHeader($k, $v) { 
     array_push ($this->headerArray, $k . ": " . $v); 
    } 

건입니다 내가 PHP 스크립트에 다중/폼 데이터를 일부를 제거하는 경우 이미지는 성공적으로 업로드되지만 서버에서 볼 때 이미지 내용을 볼 수 없습니다. 이미지를 업로드하는 동안 이미지가 손상된 것과 같습니다.

답변

0

그것은 당신이의 나에게 파일 업로드에 대한 @filename API의 사용은 지원되지 않습니다 **이 오류를 줄 컬

$ch = curl_init(); 
//$data = array('name' => 'Foo', 'file' => '@/path/to/image.jpeg'); 
$data['file'] = new CurlFile($data_string['tmp_name'], $data_string['type']); 
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php'); 
curl_setopt($ch, CURLOPT_POST, 1); 
//CURLOPT_SAFE_UPLOAD defaulted to true in 5.6.0 
//So next line is required as of php >= 5.6.0 
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_exec($ch); 
+0

를 사용을 UploadFile하는 데 도움이 될 것입니다이 코드를 사용해보십시오. 대신 CURLFile 클래스를 사용하십시오 ** –