2016-07-06 6 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スクリプトでマルチパート/フォームデータ一部を削除することで、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); 
    } 

です、イメージは正常にアップロードされますが、サーバーで表示するとイメージの内容は表示されません。画像をアップロードする際に画像が壊れているようです。

答えて

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クラスを使用してください** –

関連する問題