成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java實(shí)現(xiàn)FTP文件上傳

瀏覽:88日期:2022-08-12 09:47:28
目錄一、配置FTP文件服務(wù)器FTP兩種模式簡(jiǎn)介PORT(主動(dòng)模式)Passive(被動(dòng)模式)1、安裝vsftpd2、配置vsftpd3、重啟啟動(dòng)服務(wù)4、登錄二、java上傳文件到FTP一、配置FTP文件服務(wù)器

以Ubuntu為例

FTP兩種模式簡(jiǎn)介PORT(主動(dòng)模式)

第一步FTP客戶端首先隨機(jī)選擇一個(gè)大于1024的端口p1,并通過此端口發(fā)送請(qǐng)求連接到FTP服務(wù)器的21號(hào)端口建立TCP連接,在FTP中這個(gè)連接叫做控制連接,連接成功建立后,F(xiàn)TP客戶端會(huì)發(fā)送port命令,緊接著FTP客戶端會(huì)監(jiān)視自己的p1+1端口,F(xiàn)TP服務(wù)器接收到port命令會(huì)從自己的20號(hào)端口向FTP客戶端的p1+1端口發(fā)起請(qǐng)求建立TCP連接,這個(gè)連接叫做數(shù)據(jù)連接,用來發(fā)送數(shù)據(jù),數(shù)據(jù)傳輸完畢后數(shù)據(jù)連接隨即關(guān)閉,控制連接保持開啟

Passive(被動(dòng)模式)

在建立控制連接的時(shí)候和主動(dòng)模式類似,但建立連接后發(fā)送的不是Port命令,而是Pasv命令。FTP服務(wù)器收到Pasv命令后,隨機(jī)打開一個(gè)臨時(shí)端口(也叫自由端口,端口號(hào)大于1023小于65535)并且通知客戶端在這個(gè)端口上傳送數(shù)據(jù)的請(qǐng)求,F(xiàn)TP客戶端發(fā)送請(qǐng)求連接FTP服務(wù)器此端口,成功建立連接后FTP服務(wù)器將通過這個(gè)端口進(jìn)行數(shù)據(jù)的傳送數(shù)據(jù)傳輸完畢后數(shù)據(jù)連接隨即關(guān)閉,控制連接保持開啟

注!!!!因?yàn)楹芏喾阑饓υ谠O(shè)置的時(shí)候都是不允許接受外部發(fā)起的連接的,所以許多位于防火墻后或內(nèi)網(wǎng)后的FTP客戶端不支持主動(dòng)模式,因?yàn)榉?wù)器無法穿過防火墻或者無法連接到NAT后的客戶端。所以上傳文件時(shí)需要打開被動(dòng)模式!!!

1、安裝vsftpd

apt-get install vsftpd

2、配置vsftpd

vi /etc/vsftpd.conf

以下是vsftpd配置詳解

(1)、核心配置

local_enable=YES //允許本地用戶登錄 write_enable=YES //本地用戶的寫權(quán)限 local_umask=022 //使用FTP的本地文件權(quán)限,默認(rèn)為077,一般設(shè)置為022 pam_service_name=vsftpd //驗(yàn)證方式 connect_from_port_20=YES //啟用FTP數(shù)據(jù)端口的數(shù)據(jù)連接 listen=yes // 以獨(dú)立的FTP服務(wù)運(yùn)行 listen_port=23//修改連接端口

(2)、匿名登錄設(shè)置

anonymous_enable=NO//是否允許匿名登陸,建議不允許 anon_upload_enable=YES // 如果允許匿名登錄,是否開啟匿名上傳權(quán)限 anon_mkdir_write_enable=YES //如果允許匿名登錄,是否允許匿名建立文件夾并在文件夾內(nèi)上傳文件 anon_other_write_enable=yes // 如果允許匿名登錄,匿名帳號(hào)可以有刪除的權(quán)限 anon_world_readable_only=no //如果允許匿名登錄,匿名的下載權(quán)限,匿名為Other,可設(shè)置目錄/文件屬性控制 anon_max_rate=30000 // 如果允許匿名登錄,限制匿名用戶傳輸速率,單位bite

(3)、限制登錄

userlist_enable=yes //用userlist來限制用戶訪問userlist_deny=no//名單中的人不允許訪問userlist_file=/etc/vsftpd/userlist_deny.chroot //限制名單文件放置的路徑

(4)、限制目錄

chroot_local_user=yes //限制所有用戶都在家目錄 chroot_list_enable=YES //調(diào)用限制在家目錄的用戶名單 chroot_list_file=/etc/vsftpd/chroot_list //限制在家目錄的用戶名單所在路徑

(5)、日志設(shè)置

xferlog_file=/var/log/vsftpd.log //日志文件路徑設(shè)置 xferlog_std_format=YES // 使用標(biāo)準(zhǔn)的日志格式

(6)、安全設(shè)置

idle_session_timeout=600 //用戶空閑超時(shí),單位秒data_connection_timeout=120 //數(shù)據(jù)連接空閑超時(shí),單位秒accept_timeout=60 //將客戶端空閑1分鐘后斷開local_max_rate=10000 //本地用戶傳輸速率,單位bitemax_clients=100 //FTP的最大連接數(shù)max_per_ip= 3 //每IP的最大連接數(shù)

(7)、被動(dòng)模式設(shè)置

pasv_enable=yes //是否開戶被動(dòng)模式 pasv_min_port=3000 // 被動(dòng)模式最小端口 pasv_max_port=5000 //被動(dòng)模式最大端口

事實(shí)上配置一部就可以上傳文件write_enable=YES放開即可

干因?yàn)檫@個(gè)被動(dòng)模式搞了一天,老是傳不上去圖片,傳上去也只有0kb,還找不到原因。哎....

3、重啟啟動(dòng)服務(wù)

service vsftpd restart

4、登錄

Java實(shí)現(xiàn)FTP文件上傳

二、java上傳文件到FTP

那就貼出來寫的比較簡(jiǎn)單的文件上傳

/** * Description: 向FTP服務(wù)器上傳文件 * @param host FTP服務(wù)器hostname * @param port FTP服務(wù)器端口 * @param username FTP登錄賬號(hào) * @param password FTP登錄密碼 * @param basePath FTP服務(wù)器基礎(chǔ)目錄 * @param filePath FTP服務(wù)器文件存放路徑。例如分日期存放:/2018/01/01。文件的路徑為basePath+filePath * @param filename 上傳到FTP服務(wù)器上的文件名 * @param input 輸入流 * @return 成功返回true,否則返回false */ public static boolean uploadFile(String host, int port, String username, String password, String basePath, String filePath, String filename, InputStream input) {boolean result = false;FTPClient ftp = new FTPClient();try { int reply; // 連接FTP服務(wù)器// 如果采用默認(rèn)端口,可以使用ftp.connect(host)的方式直接連接FTP服務(wù)器 ftp.connect(host, port); // 登錄 ftp.login(username, password); reply = ftp.getReplyCode(); //獲取狀態(tài)碼 if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();//結(jié)束連接return result; //根據(jù)狀態(tài)碼判斷是否登錄成功 } //將客戶端設(shè)置為被動(dòng)模式 ftp.enterLocalPassiveMode(); //切換到上傳目錄 if (!ftp.changeWorkingDirectory(basePath+filePath)) {//如果目錄不存在創(chuàng)建目錄String[] dirs = filePath.split('/');String tempPath = basePath;for (String dir : dirs) { if (null == dir || ''.equals(dir)) continue; tempPath += '/' + dir; if (!ftp.changeWorkingDirectory(tempPath)) {if (!ftp.makeDirectory(tempPath)) { return result;} else { ftp.changeWorkingDirectory(tempPath);} }} } //設(shè)置上傳文件的類型為二進(jìn)制類型 ftp.setFileType(FTP.BINARY_FILE_TYPE); //上傳文件 成功true 失敗 false if (!ftp.storeFile(filename, input)) {return result; } input.close(); ftp.logout(); result = true;} catch (IOException e) { e.printStackTrace();} finally { if (ftp.isConnected()) {try { ftp.disconnect();} catch (IOException ioe) {} }}return result; } /** * Description: 從FTP服務(wù)器下載文件 * @param host FTP服務(wù)器hostname * @param port FTP服務(wù)器端口 * @param username FTP登錄賬號(hào) * @param password FTP登錄密碼 * @param remotePath FTP服務(wù)器上的相對(duì)路徑 * @param fileName 要下載的文件名 * @param localPath 下載后保存到本地的路徑 * @return */ public static boolean downloadFile(String host, int port, String username, String password, String remotePath, String fileName, String localPath) {boolean result = false;//創(chuàng)建對(duì)象FTPClient ftp = new FTPClient();try { int reply; //建立鏈接 // 如果采用默認(rèn)端口,可以使用ftp.connect(host)的方式直接連接FTP服務(wù)器 ftp.connect(host, port); // 登錄 ftp.login(username, password); reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return result; } //將客戶端設(shè)置為被動(dòng)模式 ftp.enterLocalPassiveMode(); ftp.changeWorkingDirectory(remotePath);// 轉(zhuǎn)移到FTP服務(wù)器目錄 FTPFile[] fs = ftp.listFiles(); for (FTPFile ff : fs) {if (ff.getName().equals(fileName)) { File localFile = new File(localPath + '/' + ff.getName()); OutputStream is = new FileOutputStream(localFile); ftp.retrieveFile(ff.getName(), is); is.close();} } ftp.logout(); result = true;} catch (IOException e) { e.printStackTrace();} finally { if (ftp.isConnected()) {try { ftp.disconnect();} catch (IOException ioe) {} }}return result; }

測(cè)試類

InputStream inputStream = new FileInputStream(new File('D:/mine/x.jpg'));//uuid生成唯一名字 號(hào)稱同一次元生成的uuid絕對(duì)不會(huì)重復(fù)String uuid = UUID.randomUUID().toString().replaceAll('-', '');FTPTools.uploadFile('192.168.1.242',21,'q','q','/home/q/','/',uuid+'獲取文件后綴名',inputStream);

Apache的原生ftp。。。。如果你發(fā)現(xiàn)連接到ftp但是上傳文件沒有成功,十有八九 Vsftpd 配置的有問題

以上就是Java實(shí)現(xiàn)FTP文件上傳的詳細(xì)內(nèi)容,更多關(guān)于Java FTP文件上傳的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧日韩精品视频| 亚洲欧美激情小说另类| 中文字幕乱码久久午夜不卡 | 日韩av一区二区在线影视| 精品福利av| 国产福利精品导航| 日本道精品一区二区三区| 亚洲成av人片观看| 国产精品久久久久久久久久直播 | 欧美无砖专区一中文字| 日日摸夜夜添夜夜添国产精品 | 日韩久久一区二区| 欧美日韩亚洲一区三区| 中文字幕乱码亚洲精品一区| 午夜天堂精品久久久久| 久久久欧美精品sm网站| 精品亚洲国产成人av制服丝袜| 欧美自拍偷拍一区| 蜜桃精品在线观看| 欧美日韩国产经典色站一区二区三区 | 日本不卡一区二区三区| 欧美亚洲在线| 日韩国产欧美视频| 欧洲av一区二区嗯嗯嗯啊| 久久丁香综合五月国产三级网站 | 亚洲欧美日韩久久精品| 1024精品一区二区三区| 亚洲人成网站影音先锋播放| 亚洲欧洲视频| 一区二区三区av电影| 国产精品色网| 日本欧美一区二区在线观看| 欧美在线不卡视频| 国产精品综合网| 久久这里只精品最新地址| 91蝌蚪porny九色| 国产精品欧美一区二区三区| 影音先锋久久久| 亚洲电影一级黄| 欧美亚洲国产一区二区三区va| 久久99热99| 欧美videossexotv100| 91浏览器在线视频| 18成人在线观看| 免费亚洲一区二区| 久久不见久久见中文字幕免费| 在线不卡中文字幕播放| 菠萝蜜视频在线观看一区| 亚洲人久久久| 一区二区三区欧美在线观看| 久久亚洲一区二区| 国产毛片精品国产一区二区三区| 欧美一级高清大全免费观看| 91影视在线播放| 一区二区三区日韩| 在线看日本不卡| 丰满亚洲少妇av| 国产午夜精品一区二区| 欧美影院一区| 国产精品免费aⅴ片在线观看| 日韩亚洲国产欧美| 日本中文字幕一区二区有限公司| 91麻豆精品国产自产在线观看一区 | 久久久久久色| 国产精品亚洲一区二区三区妖精| 精品国产一区二区亚洲人成毛片| 国产主播精品| 日本亚洲三级在线| 久久综合久久久久88| 国产亚洲综合精品| 国产精品亚洲专一区二区三区 | 久久91精品久久久久久秒播| 日韩欧美激情四射| 日韩午夜视频在线观看| 男男成人高潮片免费网站| 欧美成人a在线| 亚洲精品影院在线观看| 激情五月婷婷综合| 国产精品福利一区二区| 色噜噜狠狠成人网p站| 成人av在线资源网| 亚洲综合区在线| 日韩欧美国产三级| 国产日韩精品久久| 国产精品66部| 一区二区三区精密机械公司| 7799精品视频| 亚洲成人在线| 国产在线精品不卡| 国产精品久线观看视频| 欧美日韩综合色| 国内在线观看一区二区三区| 午夜视频在线观看一区| 欧美电影免费观看高清完整版在线 | 欧美日韩成人在线| 成人网男人的天堂| 五月开心婷婷久久| 久久免费偷拍视频| 91久久久免费一区二区| 91在线精品一区二区| 亚洲电影在线免费观看| 欧美日韩一区二区三区免费看| 欧美性色综合| 伦理电影国产精品| 综合在线观看色| 91精品国产日韩91久久久久久| 亚洲免费成人| 成人激情图片网| 婷婷夜色潮精品综合在线| 国产日韩欧美电影| 国产一区视频在线看| 亚洲国内欧美| 中文字幕乱码久久午夜不卡| 欧美视频精品在线观看| 亚洲高清二区| 成人久久18免费网站麻豆| 亚洲一区精品在线| 国产欧美视频在线观看| 欧美亚洲国产一区二区三区| 亚洲高清资源综合久久精品| 成人一道本在线| 久久精品国产精品亚洲精品| 亚洲精品ww久久久久久p站| 久久九九99视频| 91精品婷婷国产综合久久| 老司机久久99久久精品播放免费 | 欧美日韩国产一级| 亚洲一区二三| 激情久久中文字幕| a4yy欧美一区二区三区| 国产一区二区三区免费看| 日韩精品五月天| 一区二区三区中文字幕在线观看| 国产偷v国产偷v亚洲高清| 欧美一级搡bbbb搡bbbb| 欧美色图一区二区三区| 久久久久久久欧美精品| 国产精品久久国产愉拍 | 91精品国产综合久久国产大片| 免费视频一区| 黄色欧美成人| 亚洲欧美在线网| 99久久精品免费精品国产| 韩国三级在线一区| 久久综合九色综合97_久久久| 国产成人av电影在线播放| 国产精品女同互慰在线看 | 日韩激情一区二区| 99精品国产热久久91蜜凸| 欧美午夜一区| 男女性色大片免费观看一区二区| 国产欧美日韩在线播放| 欧美一区二区二区| 亚洲国产一二三| 国产一区再线| 亚洲乱码国产乱码精品精小说 | 韩国女主播一区| 亚洲视频狠狠| 国产精品久久久久久久久久直播| 久久大逼视频| 日韩一区二区在线看| 一区二区在线观看免费| 亚洲看片免费| 一区二区三区高清| 欧美精品高清视频| 日韩视频久久| 91麻豆精品国产91久久久更新时间| 在线观看日韩av先锋影音电影院| 欧美在线一二三| 中文字幕的久久| 亚洲综合成人在线| 国产一区二区在线视频| 99riav久久精品riav| 国产精品久久国产三级国电话系列| 老妇喷水一区二区三区| 精品国产一区二区在线观看| 午夜精品影院在线观看| 99re8在线精品视频免费播放| 在线观看91精品国产入口| 国产综合久久久久影院| 亚洲精品一区二区三区福利| 亚洲综合二区| 99精品黄色片免费大全| 美女视频黄 久久| 成人免费视频视频在线观看免费| 国产精品乡下勾搭老头1| 97精品视频在线观看自产线路二| 色综合一区二区三区| 国产亚洲综合色| 91美女片黄在线| 亚洲精品免费在线| 日韩一级完整毛片| 91福利社在线观看| 亚洲久草在线视频| 99久久精品免费| 在线观看国产精品网站| 首页亚洲欧美制服丝腿| 99久久777色| 欧美深夜福利| 欧美一区在线视频|