2010-12-02 24 views
12

PHPを使用してFTP経由でファイルをアップロードする方法が不思議です。アップロードフォームがあり、ユーザーがファイルをアップロードしたとします。 PHPを使ってファイルを一時ディレクトリからFTPホストに移動する方法は?PHPを使用してFTP経由でファイルをアップロードする

答えて

18

あなたが行く:簡潔にするために省略

$ftp = ftp_connect($host,$port,$timeout); 
ftp_login($ftp,$user,$pass); 

$ret = ftp_nb_put($ftp, $dest_file, $source_file, FTP_BINARY, FTP_AUTORESUME); 

while (FTP_MOREDATA == $ret) 
    { 
     // display progress bar, or someting 
     $ret = ftp_nb_continue($ftp); 
    } 

// all done :-) 

エラー処理。ここで

2

PHPウェブサイトのFTP sectionをご覧ください。非常に役に立ちます。ここで

13

は、コードサンプル

$ftp_server=""; 
$ftp_user_name=""; 
$ftp_user_pass=""; 
$file = "";//tobe uploaded 
$remote_file = ""; 

// set up basic connection 
$conn_id = ftp_connect($ftp_server); 

// login with username and password 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// upload a file 
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) { 
    echo "successfully uploaded $file\n"; 
    exit; 
} else { 
    echo "There was a problem while uploading $file\n"; 
    exit; 
    } 
// close the connection 
ftp_close($conn_id); 
+1

インデントには何が起こりましたか? – jwueller

+1

申し訳ありません、今は大丈夫です –

+0

セットアップの基本的な接続でサーバーに接続できず、何度も何度もチェックしてバグを見つけることができません –

3

はここであなたのためにそれを行うための機能ですです。

function uploadFTP($server, $username, $password, $local_file, $remote_file){ 
    // connect to server 
    $connection = ftp_connect($server); 

    // login 
    if (@ftp_login($connection, $username, $password)){ 
     // successfully connected 
    }else{ 
     return false; 
    } 

    ftp_put($connection, $remote_file, $local_file, FTP_BINARY); 
    ftp_close($connection); 
    return true; 
} 

使用法:カールを経由してアップロードについて

uploadFTP("127.0.0.1", "admin", "mydog123", "C:\\report.txt", "meeting/tuesday/report.txt"); 
+0

あなたの回答は受け入れたものよりも何を提供していますか? – dvhh

+0

@dvhh私はそれが関数で簡単だとわかります。 –

2

どのように? (注:SFTP、FTPSにもカールを使用できます)

<?php 

$ch = curl_init(); 
$localfile = '/path/to/file.zip'; 
$remotefile = 'filename.zip'; 
$fp = fopen($localfile, 'r'); 
curl_setopt($ch, CURLOPT_URL, 'ftp://ftp_login:[email protected]/'.$remotefile); 
curl_setopt($ch, CURLOPT_UPLOAD, 1); 
curl_setopt($ch, CURLOPT_INFILE, $fp); 
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile)); 
curl_exec ($ch); 
$error_no = curl_errno($ch); 
curl_close ($ch); 
if ($error_no == 0) { 
    $error = 'File uploaded succesfully.'; 
} else { 
    $error = 'File upload error.'; 
} 

?>