لن أقول الكثير من الهراء ، سأقوم فقط بنشر الكود لك. الرمز المحدد كما يلي:
// File Upload Public Static Boolean UploadToftP (url url ، منفذ int ، اسم مستخدم السلسلة ، كلمة مرور السلسلة ، مسار السلسلة ، اسم ملف السلسلة ، إدخال inputstream) {boolean success = false ؛ ftpclient ftp = new ftpclient () ؛ // org.apache.commons.net.ftp حاول {if (port> -1) {ftp.connect (url ، port) ؛ } آخر {ftp.connect (url) ؛ // ftp المنفذ الافتراضي هو 21} // يكتب العديد من الأشخاص لاستخدام ftp.getReplyCode () للحصول على قيمة إرجاع الاتصال ، ولكن هذا سيؤدي إلى إرجاع storefilestream null if (ftp.login (username ، password)) ftp.setfiletype (ftpclient.binary_file_type) ؛ // إنشاء دليل ، إذا كان موجودًا ، فسوف يفشل في إرجاع FTP.MakedIrectory (PATH) ؛ // تبديل الدليل ftp.ChangeWorkingDirectory (path) ؛ // قم بتحميل الملف // ftp بروتوكول أن تنسيق ترميز الملف هو ISO-8859-1 اسم الملف = سلسلة جديدة (filename.getbytes ("GBK") ، "ISO-8859-1") ؛ OutputStream Out = ftp.storefilestream (اسم الملف) ؛ byte [] bytearray = new byte [4096] ؛ int read = 0 ؛ بينما ((read = input.read (bytearray))! =-1) {out.write (bytearray ، 0 ، read) ؛ } out.close () ؛ ftp.logout () ؛ النجاح = صحيح ؛ }} catch (استثناء e) {} أخيرًا {if (ftp.isconnected ()) {ftp.disconnecct () ؛ }}} // File download public static boolean downloadFromftp (url url string ، int port ، string username ، كلمة مرور السلسلة ، مسار السلسلة ، String localPath) {boolean success = false ؛ ftpclient ftp = new ftpclient () ؛ // org.apache.commons.net.ftp حاول {int reply ؛ if (port> -1) {ftp.connect (url ، port) ؛ } آخر {ftp.connect (url) ؛ // ftp الافتراضي هو 21} // يكتب العديد من الأشخاص لاستخدام ftp.getReplyCode () للحصول على قيمة إرجاع الاتصال ، ولكن هذا سيؤدي إلى إرجاع storefilestream () ftp.setfiletype (ftpclient.binary_file_type) ؛ الرد = ftp.getReplyCode () ؛ if (! ftpreply.ispositionCompletion (الرد)) {ftp.disconnect () ؛ إرجاع نجاح ؛ s} // قم بتبديل الدليل هنا ، إذا فشل التبديل ، فهذا يعني أنه لا يوجد مسار على ftp.ChangeWorkingDirectory (path) ؛ // تحميل الملف ftpfile [] fs = ftp.listfiles () ؛ OutputStream Out = null ؛ inputStream في = null ؛ لـ (int i = 0 ؛ i <fs.length ؛ i ++) {ftpfile ff = fs [i] ؛ سلسلة outFilename = ff.getName () ؛ // عند إنشاء ملف محلي ، يجب عليك تحويل تنسيق الترميز الخلفي لـ localfilename = new string (ff.getName (). getBytes ("ISO-8859-") ، "GBK") ؛ ملف localfile = ملف جديد (localPath+lcoalfilename) ؛ out = fileOutputStream جديد (localfile) ؛ في = ftp.retrievefilestream (outfilename) ؛ byte [] bytearray = new byte [4096] ؛ int read = 0 ؛ بينما ((read = in.read (bytearray))! =-1) {out.write (bytearray ، 0 ، read) ؛ } // هذه الجملة مهمة للغاية لتشغيل قناة دفق FTP عدة مرات ، وانتظر كل أمر لإكمال ftp.completependingCommand () ؛ out.flush () ؛ out.close () ؛ ftp.logout () ؛ النجاح = صحيح ؛ } catch (استثناء e) {} أخيرًا {if (ftp.isconnected ()) {ftp.disconnecct () ؛ }}}ما سبق هو تطبيق Java لتحميل ملف FTP وتنزيله الذي يقدمه لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فالرجاء ترك رسالة لي وسوف يرد المحرر لك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!