مشروع اعتدت القيام به في الماضي ، وتحميل الملفات على خادم FTP ، والآن أراجعه. الأمر بسيط نسبيًا ويمكنك فهمه دفعة واحدة.
البيئة: أولاً ، قم بتثبيت خادم FTP أولاً. لقد قمت بتكوينها محليًا في Win8 مع IIS. يمكنك العثور على مستند التثبيت في Baidu.
1. إنشاء ملف تكوين FTP في دليل المشروع الخاص بك ، الدليل كما هو موضح أدناه
01 ftpconfig.properties:
FTPIP = 10.73.222.29
ftpport = 21
ftpuser = wp
ftppwd = 04143114wp
ftpremotepath = d: // share
02 الفئة التي تقرأ المحتوى المحدد في ftpconfig.properties:
package com.java.core.util ؛ استيراد java.io.ioException ؛ استيراد java.io.inputstream ؛ استيراد java.util.properties ؛/*** @Author wangpei* @Varleves: 6 مايو ، 2017 في 9:42:40 مساءً ملف التكوين لملف FTP*/public class readftstreies خصائص الخصائص الخاصة ؛ public readftPProperties () {is = this.getClass (). getResourCeasStream ("/ftpconfig.properties") ؛ // اقرأ ملف التكوين في خصائص دفق الإدخال = خصائص جديدة () ؛ حاول {properties.load (is) ؛ } catch (ioException e) {system.out.println ("ملف التكوين غير موجود ..") ؛ E.PrintStackTrace () ؛ } أخيرًا {if (null! = is) {try {is.close () ؛ } catch (ioException e) {system.out.println ("فشل الدفق المغلق ..") ؛ E.PrintStackTrace () ؛ }}}} السلسلة العامة getip () {// احصل على خصائص إرجاع IP الخاصة بخادم FTP. } السلسلة العامة getPort () {// احصل على منفذ عودة خادم FTP. getProperty ("ftpport") ؛ } السلسلة العامة getUser () {// احصل على اسم مستخدم FTP Login Return Properties.getProperty ("ftpuser") ؛ } السلسلة العامة getPWD () {// احصل على كلمة مرور تسجيل الدخول الخاصة بخصائص إرجاع خادم FTP.GetProperty ("ftppwd") ؛ } السلسلة العامة getRemotePath () {// الحصول على الدليل حيث يتم تخزين الملفات في خادم FTP يتم إرجاع خصائص. }}03 فئة الواجهة لتحميل الملف وتنزيلها
package com.java.web.service ؛ استيراد java.io.inputstream ؛ استيراد org.apache.commons.net.ftpclient ؛ استيراد com.java.core.Util.Util.ReadftPproperties ؛/** واجهة ftpservice { / * * تسجيل الدخول إلى ftp * / public boolean loginftp (عميل ftpClient ، readftpproperties rfp) ؛ / * * تسجيل الخروج من FTP */ تسجيل الدخول المنطقي العام (عميل FTPClient) ؛ /// * * قم بتحميل الملف إلى Remotepath ، الذي يكون اسمه على FTP هو inputstream */ public boolean uploadfile (ftpClient Client ، remotepath string ، filenewname ، inputstream inputstream ، readftpproperesties rfp) ؛ / * * قم بتنزيل اسم ملف الملف من Directory Remotepath */ public inputstream downfilebyftp (عميل ftpClient ، سلسلة Remotepath ، اسم ملف السلسلة) ؛ ]04 فئة تنفيذ الواجهة لتحميل الملف وتنزيلها
package com.java.web.service.serviceimpl ؛ import java.io.ioException ؛ import java.io.inputstream ؛ import java.io.unsupportedencodingexception ؛ import java.net.socketexception ؛ import org.commons.net.net.ftp ؛ org.apache.commons.net.ftp.ftpfile ؛ import com.java.core.util.ReadftProperties ؛ import com.java.web.service.ftpservice ؛/*** @author wangpei* version created time: may 6 ، 2017 at 10:02:28 pm plass descriver loginftp boolean (عميل ftpClient ، readftPproperties rfp) {string ftpip = rfp.getip () ؛ String ftpport = rfp.getport () ؛ سلسلة ftpuser = rfp.getuser () ؛ String ftppwd = rfp.getpwd () ؛ // string fgtpremotepath = rfp.getRemotePath () ؛ منطقية ب = خطأ ؛ حاول {client.connect (ftpip ، integer.parseint (ftpport)) ؛ } catch (numberFormatexception e) {system.out.println ("لا يمكن الاتصال بـ ftp") ؛ العودة كاذبة } catch (socketException e) {system.out.println ("لا يمكن الاتصال بـ ftp") ؛ العودة كاذبة } catch (ioException e) {system.out.println ("لا يمكن الاتصال بـ ftp") ؛ العودة كاذبة } catch (ioException e) {system.out.println ("لا يمكن الاتصال بـ ftp") ؛ العودة كاذبة } client.setControlenCoding ("uft-8") ؛ حاول {b = client.login (ftpuser ، ftppwd) ؛ } catch (ioException e) {system.out.println ("login ftp error") ؛ logout (client) ؛ // logout/disconnect ftp server link return false ؛ } العودة ب ؛ } تسجيل الدخول المنطقي العام (عميل ftpClient) {boolean b = false ؛ حاول {b = client.logout () ؛ // logout client.disconnect () ؛ // distonnect} catch (ioException e) {return false ؛ } العودة ب ؛ } exploadfile boolean العامة (عميل ftpClient ، سلسلة remotepath ، سلسلة fileNewName ، inputStream inputStream ، readftpproperties rfp) {boolean b = false ؛ حاول {client.setFiLetype (ftpclient.binary_file_type) ؛ client.EnterLocalPassiveMode () ؛ if (remotepath! = null &&! " لـ (String OnePath: Paths) {if (OnePath == null || "" .equals (OnePath.trim ())) {contert ؛ } OnePath = New String (OnePath.getBytes ("UTF-8") ، "ISO-8859-1") ؛ System.out.println ("OnePath =" + OnePath) ؛ if (! client.ChangeWorkingDirectory (OnePath)) {client.makedirectory (OnePath) ؛ // قم بإنشاء عميل خادم FTP. }}} b = client.storefile (سلسلة جديدة (fileNewName.getBytes ("UTF-8") ، "ISO-8859-1") ، inputStream) ؛ } catch (UnsupportedEncodingException e) {return false ؛ } catch (ioException e) {return false ؛ } العودة ب ؛ } public inputstream downfilebyftp (ftpclient ftpclient ، remotepath string ، اسم ملف السلسلة) {ftpfile [] fs ؛ inputStream هو = فارغ ؛ حاول {// تعيين الوضع السلبي ftpClient.EnterLocalPassiveMode () ؛ // set ftpclient.setfiletype (ftp.binary_file_type) ؛ // set edit format ftpclient.setControlencoding ("utf-8") ؛ remotepath = remotepath.substring (0 ، remotepath.lastindexof (اسم الملف)) ؛ fs = ftpclient.listfiles (remotepath) ؛ // الدليل الهدف المتكرر لـ (ftpfile ff: fs) {if (ff.getName (). متساوٍ (اسم الملف)) {// ابحث عن الملف الهدف هو = ftpclient.retrievefilestream ((remotepath + filename). "ISO-8859-1")) ؛ استراحة؛ }}} catch (ioException e) {E.PrintStackTrace () ؛ } العودة هي ؛ } delfile boolean العامة (ftpclient ftpclient ، مسار السلسلة) {boolean b = false ؛ حاول {b = ftpclient.deletefile (pathName) ؛ العودة ب ؛ } catch (استثناء e) {return false ؛ } أخيرًا {logout (ftpClient) ؛ // exit/dissonnect ftp server link}}}الرمز سهل الفهم ، يجب فهمه من خلال قراءته مرة واحدة. لن أقوم بتحليله على وجه التحديد هنا ، بشكل أساسي ، انظر إلى التعليقات في الكود.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.