FPClient ดำเนินการอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ที่ระบุสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
เรียก
FileInputStream ใน = ใหม่ FileInputStream (ไฟล์ใหม่ (fileUrl)); MoveFile ("10.3.3. **", 21, "ชื่อผู้ใช้", "รหัสผ่าน", เส้นทาง, ชื่อไฟล์, ใน);วิธี
/ *** คำอธิบาย: อัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ ftp* @param url ftp เซิร์ฟเวอร์ชื่อโฮสต์* @param พอร์ตพอร์ตเซิร์ฟเวอร์ ftp* @param username username ftp บัญชีล็อกอิน* @param รหัสผ่าน ftp รหัสผ่านการเข้าสู่ระบบ* @param path ftp save directory* @param moveFile (rl string, พอร์ต int, ชื่อผู้ใช้สตริง, รหัสผ่านสตริง, เส้นทางสตริง, ชื่อไฟล์สตริง, อินพุตอินพุตอินพุต) {boolean success = false; ftpClient ftp = new ftpClient (); ลอง {int ตอบกลับ; ftp.connect (url, พอร์ต); // เชื่อมต่อเซิร์ฟเวอร์ FTP // หากใช้พอร์ตเริ่มต้นคุณสามารถเชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ FTP โดยใช้ ftp.connect (URL); ftp.login (ชื่อผู้ใช้, รหัสผ่าน); // การตอบกลับเข้าสู่ระบบ = ftp.getReplyCode (); if (! ftpreply.ispositiveCompletion (ตอบกลับ)) {ftp.disconnect (); กลับมาประสบความสำเร็จ } // สร้างเส้นทางลอง {ftp.makedirectory (เส้นทาง); } catch (exception e) {} ftp.enterLocalPassiveMode (); ftp.changeworkingdirectory (เส้นทาง); บูลีน f = ftp.storefile (ชื่อไฟล์, อินพุต); logger.error (f); input.close (); ftp.logout (); ความสำเร็จ = จริง; } catch (ioexception e) {e.printstacktrace (); } ในที่สุด {if (ftp.isconnected ()) {ลอง {ftp.disconnect (); } catch (ioexception ioe) {}}} คืนความสำเร็จ; -รายละเอียดบางอย่าง
FileInputStream.available () ส่งคืนจำนวนไบต์ที่อ่านได้จริงนั่นคือขนาดทั้งหมด
เมื่อวิธี ftpClient.storefile () หยุดอยู่ที่นั่นจะไม่มีปฏิกิริยาและมีสภาวะความตายปลอม
วิธีแก้ปัญหา: โทร ftpclient.enterlocalpassivemode ()
หลักการ: เนื่องจากเซิร์ฟเวอร์ FTP อาจเปิดพอร์ตที่แตกต่างกันเพื่อส่งข้อมูลทุกครั้ง แต่บน Linux หรือเซิร์ฟเวอร์อื่น ๆ เนื่องจากข้อ จำกัด ด้านความปลอดภัยพอร์ตบางพอร์ตอาจไม่สามารถเปิดใช้งานได้ดังนั้นจึงเกิดการอุดตัน
พอร์ต FTP เริ่มต้น คือ 21, SSH คือ 22 และพอร์ตการส่งจริงคือ 20
ดูพอร์ตที่ระบุ ตัวอย่าง 21
netstat -na | grep 21 (หมายเลขพอร์ต)
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น