2012-01-04 4 views
0

FTP経由で大きなファイルを送信するPHPスクリプトがあります。ファイルが送信された後、私はブラウザ "success"に書き込もうとしています。また、ファイルが送信されたことを記録するためにデータベースにクエリを送信しようとしています。しかし、私はftp_putの後に来るコードは実行されません。ftp_put()を使用した後、「成功」をエコーする

if (ftp_put($conn_id, $upload_filename, $filename, FTP_BINARY)) 
{ 
    echo "File Sent"; 
    echo $upload_filename." - ".date("d/m/Y H:i:s")." - ".filesize($filename)." bytes<br>" ; 
} 
else 
{ 
    echo "Problem while Uploading $filename\n <br/>". $upload_filename ; 
} 

ftp_put場合falseエコー作品です。しかし、ftp_putが成功した場合は、そこに置くコードは実行されません。

私が送信していたファイルのサイズが7305キロバイト

答えて

0

ここでの問題は、ファイルがアップロードされている間、あなたのスクリプトがタイムアウトしていることである可能性が高いです。上記のコードの前に次の行を追加してみてください:

set_time_limit(0); 
+0

ありがとうございます。私はそれを試してもそれはまだ動作しませんでした – user1130993

0

事がアップロードされるまでftp_put()ブロックのさらなるアクションが終了したことです。次のようにftp_nb_put()(ブロッキングなし)を試してください。

$upload = ftp_nb_put($conn_id, $upload_filename, $filename, FTP_BINARY); 

if($upload == FTP_MOREDATA) 
{ 
    echo 'Uploading ' . $upload_filename . ' - ' . date("d/m/Y H:i:s") . ' - ' . filesize($filename) . ' bytes<br />'; 
    while($upload == FTP_MOREDATA) 
    { 
     echo '.'; //Output a . to page or do whatever 
     $upload = ftp_nb_continue($conn_id); 
    } 
} 

//Note: While in the while above, it will either end in FTP_FINISHED or FTP_FAILED 
if($upload == FTP_FAILED) 
{ 
    echo "Problem while Uploading $filename\n <br />". $upload_filename; 
} 
関連する問題