2013-04-30 132 views
1

我想用html表單上傳文件。上傳方法是通過FTP到FileZilla服務器。我已成功上傳文件,但似乎只有它的文件擴展名和文件名是上傳的文件。在Windows資源管理器中查看傳輸的文件時,該文件總是被損壞並且不顯示文件大小。這是我的代碼。請幫忙。用ftp_nb_put上傳到FileZilla FTP服務器的文件已損壞

include 'Connections/ftpgangconnect.php'; 
ini_set("upload_max_filesize", "250M"); 
ini_set("post_max_size", "250M"); 

if (isset($_POST['upload'])) { 
    $name = $_FILES['myfile'] ['name']; 
    $size = $_FILES['myfile'] ['size']; 
    $type = $_FILES['myfile'] ['type']; 
    $temp = $_FILES['myfile'] ['tmp_name']; 
    $error = $_FILES['myfile'] ['error']; 
    $content = $_FILES['myfile']['content']; 
    $temp = $_FILES['myfile'] ['tmp_name']; 
    $name = $_FILES['myfile']['name']; 
    $dest_file ="/".$name; 

    // upload the file 
    $upload = ftp_nb_put($ftp, $dest_file, $temp, FTP_BINARY); 

    // check upload status 
    if (!$upload) { 
     echo "FTP upload has failed!"; 
    } else { 
     echo "Uploaded $name"; 
     ftp_close($ftp); 
    } 
} 

回答

1

檢查ftp_nb_put function的示例。你應該調用在一個循環中ftp_nb_continue,直到上載完成:

// upload the file 
$upload = ftp_nb_put($ftp, $dest_file, $temp, FTP_BINARY); 

while ($upload == FTP_MOREDATA) 
{ 
    // Continue uploading... 
    $upload = ftp_nb_continue($ftp); 
} 

雖然除非你需要做任何事情都要在循環中,它沒有意義的使用ftp_nb_put。只需使用簡單的ftp_put代替:

$upload = ftp_put($ftp, $dest_file, $temp, FTP_BINARY); 
+0

謝謝它,它工作完美 – rain 2013-05-01 00:21:20