2012-01-18 13 views
3

画像を転送するのに次のコードを使用していますが、転送後にjpgが壊れていることを除いて動作しています。 Isは無効な画像形式で、ぼやけた画像を表示します。PHPカールトランスファー後に画像が壊れています。FTP

カールしないで普通のPHPを使ってみましたが、同じ結果が得られました。私は作品を試みるが、image.jpg

$curl = curl_init(); 
$fh = fopen("test.jpg", 'w'); 
curl_setopt($curl, CURLOPT_URL, "ftp://{$serverInfo['user']}: {$servererInfo['password']}@{$serverInfo['ftp1.server.com']}/{$serverInfo['For_Web/Web Images/Full Size/00-99/file']}"); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($curl); 
fwrite($fh, $result); 
fclose($fh); 
curl_close($curl);` 
+0

てみ '$結果=のfile_get_contents(" FTP:// {$ serverInfo [ 'ユーザー']}:{$ servererInfo [ 'パスワード']} @ {$ serverInfo [ 'ftp1.server.com'] – CSharpRU

+0

あなたの 'curl_setopt()'に 'CURLOPT_BINARYTRANSFER'を追加する – dnagirl

答えて

3

いくつかの問題がありますが破損どんな理由

誰もが知っています。

ファイルをバイナリモードで開く必要があります。ブール値(成功)を返しますcurl_exec

$fh = fopen("test.jpg", 'wb'); 

、ファイルの内容が、ファイルではなくCURLOPT_FILEに渡されるべきではありません。

CURLOPT_USERPWDを使用してユーザー名/パスワードを設定する必要があります。ただし、URL方法も機能するかどうかはわかりません。

CURLOPT_BINARYTRANSFERを設定する必要があります。

作業サンプル;

$curl = curl_init(); 
$fh = fopen("fips.exe", 'wb'); 
curl_setopt($curl, CURLOPT_URL, 'ftp://ftp.sunet.se/pub/FreeBSD/tools/fips.exe'); 
curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_FILE, $fh); 
curl_setopt($curl, CURLOPT_USERPWD, 'anonymous:olle'); 
$result = curl_exec($curl); 
fclose($fh); 
curl_close($curl); 
+0

私はバイナリモードを使ってみましたが、同じ問題。ここに私のコードは – user1156446

+0

$ curl = curl_init(); $ fh = fopen( "test.jpg"、 'wb'); ($ curl、CURLOPT_URL、 "ftp:// {$ serverInfo ['wps']}:{$ serverInfo ['ftps1.wpsstatic.com']}/{$ serverInfo ['wps' $ serverInfo ['For_Web/Web Images/Full Size/00-99/73-3624.jpg']} "); curl_setopt($ curl、CURLOPT_BINARYTRANSFER、1); $結果= curl_exec($ curl); fwrite($ fh、$ result); fclose($ fh); curl_close($ curl); – user1156446

+0

答えに作業サンプルを追加しました。 –

関連する問題