Artikel ini menjelaskan metode mengunggah file ke server FTP oleh Java. Bagikan untuk referensi Anda, sebagai berikut:
Peralatan:
Paket com.fz.common.util; import java.io.datainputstream; import java.io.dataoutputStream; import java.io.fileinputStream; impor java.io.filenotfoundException; impor java.io.fileOutputstream; impor java.io.io.io. java.text.simpledateFormat; import java.util.date; import org.apache.commons.net.ftp.ftpclient; public org.apache.commons.net.ftp.ftpreply; class public fileutil { / ** ** * @date September 26, 2011 10:17:17:3. DataInputStream getInput () {DataInputStream d = null; coba {d = DataInputStream baru (FileInputStream baru ("c: /wmc.dat")); kembali D; } catch (FileNoTFoundException e) {// TODO Auto-Encoerated Catch Block E.PrintStackTrace (); } return d; } / ** * * @Date September 26, 2011 10:17:44 AM * @param Whites * @return * @author zhangh * / public static boolean creathitemanagefile (byte [] whites, file string) {dataoutputputstream d; coba {d = DataOutputStream baru (FileOutputStream baru (file)); D.Write (putih); d.flush (); } catch (Exception e) {// TODO Auto-Guiled Catch Block Return False; // E.PrintStackTrace (); } return true; } /** * * @date Sep 16, 2011 4:39:22 PM * @param url * @param username * @param password * @param path * @param filename * @param input * @return * @author zhangh */ public static boolean uploadFile(String url, String username, String password, String path, String filename, InputStream input) { boolean success = PALSU; FtpClient ftp = ftpclient baru (); coba {int balasan; ftp.connect (url); // ftp.connect (url, port); // terhubung ke server ftp // jika port default digunakan, Anda dapat langsung terhubung ke server FTP dengan menggunakan ftp.connect (url); ftp.login (nama pengguna, kata sandi); // Masuk Balas = ftp.getReplyCode (); if (! ftpreply.ispositiveCompletion (balasan)) {ftp.disconnect (); Sukses kembali; } ftp.changeworkingdirectory (path); ftp.storefile (nama file, input); ftp.logout (); input.close (); Sukses = Benar; } catch (ioException e) {e.printstacktrace (); } akhirnya {if (ftp.isconnected ()) {coba {ftp.disconnect (); } catch (ioException IoE) {}} return Success; } / ** * * Metode Nama: unggahfileftp * Metode Deskripsi: Blacklist, Black User File Unggah Server FTP * @param URL * @param username * @param kata sandi * @param path * @param filename * @param input * @param input2 * @return * boolean * Versi 1.0 * @param pm * pm 26.13, pma: boolean * @roolean * @roolean * versi pm * @roolean * versi * @roolean unggahfileftp (string url, string nama pengguna, kata sandi string, jalur string, nama file string, inputStream input, inputStream input2) {date date = new date (); SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); String time = formatter.format (date); Boolean Success = false; FtpClient ftp = ftpclient baru (); coba {int balasan; ftp.connect (url); ftp.login (nama pengguna, kata sandi); // login balasan = ftp.getReplycode (); if (! ftpreply.ispositiveCompletion (balasan)) {ftp.disconnect (); Sukses kembali; } ftp.changeworkingdirectory (path); ftp.storefile (nama file, input); ftp.storefile (nama file + waktu, input2); ftp.logout (); input.close (); Sukses = Benar; } catch (ioException e) {e.printstacktrace (); } akhirnya {if (ftp.isconnected ()) {coba {ftp.disconnect (); } catch (ioException ioE) {}}} return Success; }}Baca file konfigurasi:
Paket com.fz.fzbike.domain; import java.io.bufferedInputStream; impor java.io.fileInputStream; impor java.io.ioException; impor org.oVa.log4j.logsons (logram. * Kelas kacang yang memperoleh informasi server FTP * * @author wuxq * */kelas publik sysconstats {private static logger log = logger.getLogger (sysconstats.class); string statis public ftpserver; // ftp server ip alamat public static string ftpusername; // ftp server pengguna nama public static string ftppassword; // server ftp server pengguna public static string {try {inputgputeam server ftp neunstream Sysconstants.public_path.substring (0, sysconstants.public_path.length () - 7) + "/bidfileConfig.properties")); Properti prop = properti baru (); prop.load (dalam); Sysconstats.ftpserver = prop.getProperty ("ftpserver", "none"); Sysconstats.ftpusername = prop.getProperty ("ftpusername", "none"); Sysconstats.ftppassword = prop.getProperty ("ftppassword", "none"); Sysconstats.enveloperesultroot = prop.getProperty ("Enveloperesultroot", "none"); log.debug ("Baca informasi konfigurasi FTP berhasil!"); } catch (ioException e) {log.debug ("Gagal membaca informasi konfigurasi FTP!"); e.printstacktrace (); }} public static string getFtPserver () {return ftpserver; } public static void setFtpserver (String ftpserver) {ftpserver = ftpserver; } public static string getFtPusername () {return ftpusername; } public static void setFtPusername (String ftpusername) {ftpuserName = ftpusername; } public static string getFtppassword () {return ftppassword; } public static void setFtppassword (String ftppassword) {ftppassword = ftppassword; } public static string getEnveloperesultroot () {return quveloperesultroot; } public static void setenveloperesultroot (String Enveloperesultroot) {Enveloperesultroot = Enveloperesultroot; } public static void main (string args []) {new Sysconstats (); }}Unggah file ftp:
Paket com.fz.fzbike.biz; impor java.io.bufferedInputStream; impor java.io.bytearrayoutputStream; impor java.dataoutputstream; impor java.fileinputStream; impor java.filenotfoundexception; impor Java.filePeEcception; impor Java. java.text.decimalformat; import com.enets.bassys.user.vo.uservo; import com.enets.framework.assemble.requesthashnew; import com.enets.framework.database.dbconnection; impor com.fz.common.util.fileut.database.dbconnection; comz.fzbike.domain.sysconstats;/** * Unggah kode kartu ke server ftp untuk menghasilkan file kelelawar * * @author wuxq 2011-09-28 */kelas publik unggahan cardinnoftpaction {/** * Metode: unggah Metode Deskripsi: Unggah File ke FTP * @par @ppar {/** * Metode: Unggoadftp Metode Deskripsi: Unggah file ke ftp * @par @par @par @ppar * WoOD * Version Wooid: Version Version 28 Wooid: Unggok Metode: Unggo METODE: UPLOADDIN FTP * @PARE @/**? 10:38:38 AM */ public void unggahftp (requestHashNew reh) {string cardType = reh.get ("cardType"). ToString (); Dbconnection dbc = reh.getdbc (); // tautan database dbc.endtran (); // Tentukan apakah itu kosong dan mungkin kehilangan laporan, keluar dari kehilangan laporan, keluar dari daftar hitam, dan dapatkan jenis kartu berdasarkan ID kartu jika (stringutil.isnull (cardType)) {string cardtipesql = "pilih ci.card_type dari lc_t_card_info ci di mana ci.card_id =" " +" + "("; " cardType = dbc.getList0 (cardtipesql); } String top = "c:/unggah/"; String file = top + "bmc.dat"; // Tentukan direktori untuk menyimpan string file Blacklist Bat Blacklist sementara whitefile = top + "wmc.dat"; // Tentukan direktori untuk menyimpan file whitelist bathelist sementara string buserfile = top + "buser.dat"; // Tentukan direktori untuk menyimpan string file pengguna hitam sementara fileid = dbc.setoracleDidevalue ("LC_T_UPGRADE_FILE"); // Dapatkan nomor seri tabel file // Dapatkan ID pengguna saat ini uservo uservo = reh.getuservo (); String userId = userVo.getUserId (); Decimalformat df = decimalformat baru ("0.0"); if (cardType.equals ("7")) {StringBuffer BF = New StringBuffer (1024); BF .Append ("Pilih CARD_IN_NO yang berbeda dari (pilih tc.card_in_no") .Append ("Dari lc_t_blacklist tb kiri bergabung dengan lc_t_card_info tc"). lappend ("pada tb.card_id = tc.card_id TC"). Pilih ") .Append (" tc.card_in_no dari lc_t_card_loss cl meninggalkan gabungan ") .append (" lc_t_card_info tc pada cl.card_id = tc.card_id di mana tc.card_type = 7 dan "). lampai (" cl.ward_efektif = 1). BlackList dan Laporan Tabel Rekam StringBuffer Brush = New StringBuffer (1024); BFFER .Append ("Pilih ti.card_in_no dari lc_t_card_info ti") .append ("di mana ti.card_type = 7 dan ti.card_make_status = 2 pesanan oleh ti.card_in_no"); // Semua administrator mencatat dalam tabel informasi kartu in -cod/ codes untuk administrator // arr [] [] = dbc.getArr (bf.toString ()); // Tentukan array untuk menerima kode kartu yang diurutkan dalam string tabel informasi kartu mendengarkan [] [] = dbc.getArr (bffer.tostring ()); unggah_f (arr, file); // Dapatkan nomor versi file BAT BlackList, nilai awalnya adalah 1.0 string vectorsql = "Pilih file_vesion dari (pilih row_number () over (order by t.file_vesion desc) num," + "t.file_vesion dari lc_t_upgrade_file t mana t.file_type = 2) dari lc_t_upgrade_file t mana t.file_type = 2) dari num = 2) String vesion = dbc.getList0 (vesionsql); Double ve = 1.0; // Tentukan variabel nomor versi BlackList, nilai awalnya adalah 1.0/ * * Jika ada versi lama dalam database, versi akan ditingkatkan sebesar 0,1 */ if (stringutil.isnotnull (vesion)) {ve = (double.parsedouble (vesion) + 0,1); } vesion = df.format (ve); // Versi Rekam Pernyataan SQL String bmcsql = "INSERT INTO LC_T_UPGRADE_FILE VALUES (" + FileID + ", '" + File + "', '" + Vesion + "', '2', SysDate," + UserId + ")"; dbc.insertdb (bmcsql); // bertahan ke database unggah_f (listarr, whitefile); // Dapatkan nomor versi file kelelawar yang dimuat putih, nilai awalnya adalah 1.0 string vesionsql2 = "pilih file_vesion dari (pilih row_number () over (order oleh t.file_vesion desc) num," + "t.file_vesion dari lc_t_upgrade_file t.file_type = 5) dari lc_t_upgrade_file t.file_type = 5) dari lc_t_upgrade_file t.file_type = 5) dari lc_t_upgrade_file t.file_type = 5) dari lc_t_upgrade_file t.file_type = 5) dari lc_t_upgrade_file t.file_type = 5) dari lc_t_upgrade_file t.file_type = 5) String vesion2 = dbc.getList0 (vesionsql2); Double Ve2 = 1.0; // Tentukan variabel nomor versi putih, nilai awalnya adalah 1.0/ * * jika ada versi lama dalam database, versi akan ditingkatkan sebesar 0,1 */ if (stringutil.isnotnull (vesion2)) {ve2 = (double.parsedouble (vesion2) + 0.1); } String bfileId = dbc.setoracleglidevalue ("lc_t_upgrade_file"); // Dapatkan nomor seri tabel file vesion2 = df.format (ve2); // Versi Rekam Pernyataan SQL String bmcsql2 = "INSERT INTO LC_T_UPGRADE_FILE VALUES (" + BFILEID + ", '" + Whitefile + "', '" + Vesion2 + "', '5', sysdate," + userid + ")"; dbc.insertdb (bmcsql2); // bertahan ke database} else {stringBuffer bf2 = stringBuffer baru (1024); bf2 .append ("Pilih card_in_no yang berbeda dari (pilih tc.card_in_no") .Append ("Dari lc_t_blacklist tb kiri bergabung dengan lc_t_card_info tc") .penping ("pada tb.card_id = tc.card_id tc.card_ward ortyping (" pada tb.card_id = tc.card_id tc.card_phyping ortype <> ("") ("" ") (tb." Pilih ") .Append (" tc.card_in_no dari lc_t_card_loss cl kiri gabung ") .append (" lc_t_card_info tc di cl.card_id = tc.card_id ") .append (" di mana tc.card_type <> 7 dan cl.warder "). t.card_in_no "); // semua catatan non-administrator dalam tabel BlackList dan melaporkan tabel pengguna yang hilang // Tentukan array untuk menerima kode kartu pengguna yang diurutkan dalam string pengguna hitam arr2 [] [] = dbc.getarr (bf2.tostring ()); unggah_f (arr2, buserfile); // Dapatkan nomor versi file kelelawar pengguna hitam, nilai awalnya adalah 1.0 string hsersql = "SELECT file_vesion dari (pilih row_number () over (order oleh t.file_vesion desc) num," + "t.file_vesion dari lc_t_upgrade_file t di mana t.file_type = 4) dari lc_t_upgrade_file t di mana t.file_type = 4) di mana num = 1 = 1; String vesion3 = dbc.getList0 (husersql); Double ves = 1.0; // Tentukan variabel nomor versi pengguna hitam, nilai awalnya adalah 1.0/ * * Jika ada versi lama dalam database, versi akan ditingkatkan sebesar 0,1 */ if (stringutil.isnotnull (vesion3)) {ves = (double.parsedouble (vesion3) + 0.1); } vesion3 = df.format (ves); // Versi Catatan Pernyataan SQL String husersql = "Sisipkan ke dalam nilai LC_T_UPGRADE_FILE (" + fileId + ", '" + buserfile + "', '" + vesion3 + "', '4', sysdate," + userid + ")"; dbc.insertdb (husersql); // bertahan ke database}}/ ** * * Metode Nama: Writelong Metode Deskripsi: Tulis bilangan bulat panjang ke aliran output * * @param input * @return byte [] versi byteon byteam (] wuxq 28 Sep) = byteArrayOutputStream (); DataOutputStream OS = DataOutputStream baru (BAOS); coba {os.writelong (long.reversebytes (input)); } catch (ioException e) {// TODO AUTO-ENCEALATED Catch Block E.PrintStackTrace (); } byte [] b = Baos.tobyteArray (); kembali b; } / ** * * Metode Nama: Upload_f Metode Deskripsi: Unggah file ke server ftp * * @param arr * @param file * void versi 1.0 penulis wuxq 8 Okt 2011 11:37:27 AM * / public static void unggahan_f (string [] [] arr, string file) {byte by [] = null; byte [] hasil = byte baru [1]; if (stringutil.isnotnull (arr)) {result = byte baru [arr.length * 4]; posisi int = 0; untuk (int i = 0; i <arr.length; i ++) {by = writelong (long.parselong (arr [i] [0])); Daftar byte [] = byte baru [4]; untuk (int h = 0; h <list.length; h ++) {list [h] = oleh [h]; } untuk (int g = posisi; g <position+4; g ++) {hasil [g] = daftar [g - 4 * i]; } position = Posisi + 4; }} boolean bool = fileutil.createwhitemanagefile (hasil, file); // Buat file bat batang if (bool) {// inputStreamReader isr = inputStreamReader baru (baru // fileInputStream (file)); Inputstream INP = null; Inputstream inp2 = null; coba {INP = baru bufferedInputStream (FileInputStream baru (file)); INP2 = BufferedInputStream baru (FileInputStream baru (file)); } catch (FileNoTFoundException e) {// TODO Auto-Encoerated Catch Block E.PrintStackTrace (); } // mencegat nama file string f = file.substring (10, file.length ()); // Dapatkan informasi konfigurasi FTP sysconstats sc = new Sysconstats (); Fileutil.uploadfileftp (sc.ftpserver, sc.ftpusername, sc.ftppassword, sc.enveloperesultroot, f, inp, INP2); }}}Untuk informasi lebih lanjut tentang konten terkait Java, silakan periksa topik -topik situs ini: "Ringkasan File Java dan Keterampilan Operasi Direktori", "Tutorial tentang Struktur Data Java dan Algoritma", "Ringkasan Keterampilan Operasi Java Operation Dom Node" dan "Ringkasan Keterampilan Operasi Java Cache"
Saya harap artikel ini akan membantu pemrograman Java semua orang.