2016-08-08 12 views
8

Tôi đang cố tải lên tệp văn bản được tạo từ cơ sở dữ liệu thông qua PHP.Tải tệp văn bản lên Google tải lên qua PHP FTP PUT

Tệp văn bản được tạo OK, nhưng khi tôi thử tải tệp lên qua PHP FTP Đặt nó không thành công.

Mã của tôi:

$filename = "products_admin.txt"; 
$handle = fopen($filename, 'w+'); 
fwrite($handle, $content); 
fclose($handle); 
echo "Attempting to connect to <i>uploads.google.com</i>...<br />"; 
$ftp_connect = ftp_connect("uploads.google.com", "21", "5000") or die("failed to connect."); 
$login_result = ftp_login($ftp_connect, "{usernamehere}", "{passwordhere}") or die("ERROR: Username or Password incorrect."); 

if((!$ftp_connect) || (!$login_result)) { 
    echo "ERROR: Couldn't connect to <i>uploads.google.com</i>, upload failed.<br /><br />"; 
    echo "<a href=\"javascript:location.reload(true)\">Try Again</a>"; 
    exit; 
} else { 
    echo "Connected to <i>uploads.google.com</i>...<br />"; 
    $upload = ftp_put($ftp_connect, $filename, $filename, FTP_ASCII); 
    if(!$upload) { 
     echo "ERROR: Failed to upload ".$filename." to <i>uploads.google.com</i>.<br /><br />"; 
     echo "<a href=\"javascript:location.reload(true)\">Try Again</a>"; 
    } else { 
     echo "Uploading <i>".$filename."</i> to <i>Froogle</i>...<br />"; 
     echo "Successfully uploaded <i>".$filename."</i> to <i>uploads.google.com</i>.<br /><br />"; 
     echo "Done."; 
    } 
} 
ftp_close($ftp_connect); 

Thông báo lỗi tôi nhận được là

Cảnh báo: ftp_put(): PORT IP là không giống như 176.32.230.48. trong /home/sites/mysite.co.uk/public_html/admin/controllers/generate_feed.php trên dòng 100 LRI: Không thể tải sản phẩm_admin.txt lên uploads.google.com.

Trả lời

4

Bạn có thể chỉ cần kích hoạt chế độ thụ động:

... 
$login_result = ftp_login($ftp_connect, "{usernamehere}", "{passwordhere}") or die("ERROR: Username or Password incorrect."); 
ftp_pasv($ftp_connect, true); 
... 
+1

Một ghi chú từ phần nhận xét trong [tài liệu] (http://php.net/manual/en/function.ftp-pasv.php): _Nếu bạn vẫn gặp sự cố sau khi chọn ftp_pasv(), bạn nên làm mới kết nối thông qua ftp_close()/ftp_connect() sau khi x tập tin và/hoặc y GB đã được chuyển giao. – CarlosCarucce

0

Khi tôi sử dụng FTP với máy chủ Google Compute Engine của tôi, tôi đã có cùng một vấn đề mà xảy ra bởi vì máy chủ là đằng sau bức tường lửa của Google. Bạn có thể đọc thêm về vấn đề này here. Bạn có thể thử bật chế độ thụ động không quan tâm đến IP có chức năng ftp_pasv.

Các vấn đề liên quan