2017-07-19 9 views
1

私はこのリンクを持っています:http://gdlp01.c-wss.com/gds/6/0300002536/03/PSG11_CUG_EN_03.pdfこのファイルを私のFTPサーバーにコピーします。私は試しました:HTTP URLからFTPサーバーへのPHPコピーファイル

$file = "http://gdlp01.c-wss.com/gds/6/0300002536/03/PSG11_CUG_EN_03.pdf"; 
$data = file_get_contents($url); 

$ftp_server = "ftp_server"; 
$ftp_user = "ftp_user"; 
$ftp_pass = "ftp_pass"; 

$ftp = ftp_connect($ftp_server,21) or die("Couldn't connect to $ftp_server"); 

if (ftp_login($ftp, $ftp_user, $ftp_pass)) { 
    echo "Connecté en tant que [email protected]$ftp_server\n"; 
} else { 
    echo "Connexion impossible en tant que $ftp_user\n"; 
} 

接続は成功しましたが、その後はどのように起動するのか分かりません。

答えて

1

ftp_fputを使用する必要がありますが、この関数がURLを処理できるかどうかはわかりません(私はそう思わない)ので、既存の変数をメモリに入れて偽造することに決めましたファイルハンドラ:

$tmpFile = fopen('php://memory', 'r+'); 
fputs($tmpFile, $data); 
rewind($tmpFile); 
if (ftp_fput($ftp, 'manual.pdf', $tmpFile, FTP_ASCII)) { 
echo "worked"; 
} else { 
echo "did not work"; 
} 
+0

固定しました。 –

-1

PHPは、コピー()メソッドがあります:http://php.net/manual/en/function.copy.phpが、ftpのためにあなたはftp_fput

あなたはこのftp_fput機能を持っている可能性がある問題が必要になりますが、ROOTを定義する必要があるということですあなたのファイルサーバーのパスと、そのFTPサーバー上のフォルダー内の何かを実際に変更する権限(chmod-rights)。 フォルダはサーバーによって異なります。 多くのオプションを持つftpメソッドを既に見つけました:http://php.net/manual/en/ref.ftp.php 私はこれをテストしませんでしたが、始めるのを助けてくれることを願っています。

$ftproot = "/public_html/home/"; 
$toftpfile = $ftproot."example.pdf"; 

if (!ftp_fput($ftp, $file, $toftpfile)) { 
    echo "failed to copy $file...\n"; 
} 

http://php.net/manual/en/function.ftp-fput.php

+0

'ftp_fput'の3番目の引数は、パスではなくハンドルです。だからこれは間違っている。 –

0

あなたはURL wrappers enabledを持っている場合、それは同じくらい簡単です:あなたが書き込みをより細かく制御(転送モード、パッシブモード、オフセットが必要な場合は、

$file = "http://gdlp01.c-wss.com/gds/6/0300002536/03/PSG11_CUG_EN_03.pdf"; 
$ftp_server = "ftp_server"; 
$ftp_user = "ftp_user"; 
$ftp_pass = "ftp_pass"; 

copy($file, "ftp://$ftp_user:[email protected]$ftp_server/PSG11_CUG_EN_03.pdf"); 

読み取り制限など)、ftp_fputにはphp://temp (or the php://memory) streamのハンドルを使用してください。

Transfer in-memory data to FTP server without using intermediate fileを参照してください。

関連する問題