2011-10-16 25 views
6

Tôi chuyển tệp bằng PHP và SSH2 sang máy chủ từ xa.Tệp được gửi với ssh2_scp_send() không đầy đủ trên máy chủ từ xa

tôi sử dụng này:

$connection = ssh2_connect('shell.example.com', 22); 
ssh2_auth_password($connection, 'username', 'password'); 
ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644); 

Nhưng đôi khi các tập tin trên máy chủ từ xa là không đầy đủ. Tôi có giả thiết rằng SSH2 không chuyển giao EOF hay bất cứ thứ gì khác.

Bạn có ý tưởng hoặc giải pháp nào không?

+0

Báo cáo lỗi có được bật không? Bạn có thấy thông báo nếu có sự cố không? –

+0

Vâng, đúng thế. Tôi sẽ thấy nó. –

Trả lời

17

Vấn đề là bạn không đóng phiên SSH. Vì vậy, các bộ đệm nội bộ không được xóa và các tệp không được ghi vào đĩa đầy đủ.

Đây là một cách giải quyết khác - chỉ cần đóng phiên làm việc với:

ssh2_exec($connection, 'exit'); 

Điều này sẽ khiến tất cả các bộ đệm để được rửa và các tập tin của bạn nên được chuyển giao hoàn toàn.

Hy vọng điều đó sẽ hữu ích.

+0

Hoàn hảo! Điều này đã làm các trick, bây giờ nó hoạt động hoàn hảo. Cảm ơn bạn! –

+0

Chào mừng bạn đến với Stack Overflow! Ghi chú bên ngoài chủ đề hoàn toàn: Trang chủ của bạn có một số * Umbrüche * lạ trong Chrome 14, v.d. 'Pr-ogrammiersprachen' và' Nebenb-eruflich'. Không chắc tại sao, nhưng tôi nghĩ bạn có thể muốn biết. @Simon nếu câu trả lời này phù hợp với bạn, hãy xem xét đánh dấu nó được chấp nhận bằng cách sử dụng biểu tượng dấu kiểm. –

+1

Cảm ơn Pekka, nhưng tôi phải đợi 5 phút trước khi tôi có thể chấp nhận. :-) –

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