osxftp
㈠ Windows端有哪些ftp客户端软件值得推荐
Windows端有哪些FTP客户端软件值得推荐?
Filezilla
FileZilla是一个免费的 FTP 客户端软件,虽然它是免费软件,可功能却一点也不含糊,比起那些共享软件来有过之而无不及,在新的版本中作者改进了手动下载的界面和功能等,不过该软件暂时还是不支持断点续传功能。总的来说是一款优秀的免费软件。
功能介绍:
1、易于使用
2、支持FTP, FTP并支持SSL/TLS (FTPS)协议,支持SSH文件传输协议(SFTP)
3、跨平台。在 Windows, linux, *BSD, Mac OS X 和其它平台下运行 more
4、支持IPv6协议
5、多种可用的语言(包含中文)
6、断点续传且支持容量大于4GB的文件
7、多标签用户界面
8、功能强大的站点管理器(Site Manager)和传输队列管理
9、书签功能
10、拖拽功能支持
11、支持传输限速功能
12、文件名过滤器
13、文件夹比较功能
14、网络设置向导
15、远程文件编辑功能
16、保持链接功能
17、支持HTTP/1.1, SOCKS5 和 FTP代理(FTP-Proxy)
18、登录到文件功能
19、同步文件夹浏览
20、远程查找文件
㈡ 怎么在linux下开启xftp服务器
1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下: #which vsftpd
如果看到有vsftpd的目录说明服务器已经安装了ftp软件
2. 查看ftp 服务器状态
#service vsftpd status
3. 启动ftp服务器
#service vsftpd start
4. 重启ftp服务器
#service vsftpd restart
5. 查看服务有没有启动
#netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
如果看到以上信息,证明ftp服务已经开启。
6.如果需要开启root用户的ftp权限要修改以下两个文件
#vi /etc/vsftpd.ftpusers中注释掉root
#vi /etc/vsftpd.user_list中也注释掉root
然后重新启动ftp服务。
7. vsftpd 500 OOPS: cannot change directory
登陆报错:
C:\>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
解决方法:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!
这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。
8. 永久开启,即os重启后自动开启ftp服务
方法一:
cd /etc/xinetd.d ,编辑ftp服务的配置文件gssftp的设置:
vi /etc/xinetd.d/gssftp ,将 修改两项内容:
(a) server_args = -l –a 去掉-a 改为server_args = -l
(b) disable=yes改为disable=no
(c) 保存退出。
方法二:
(a) system-config-services , 进入图形界面的System services查看是否有 vsftpd项,如果没有转到2.,保存后退出
(b) 用redhat第三张盘 安装此服务(开始--删除/增加程序),200K左右
(c) #setup
此时能看到vsftpd项,此时选中此services项,保存后退出.
㈢ xftp链接对面主机必须开启ftp服务器吗
1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下: #which vsftpd
如果看到有vsftpd的目录说明服务器已经安装了ftp软件
2. 查看ftp 服务器状态
#service vsftpd status
3. 启动ftp服务器
#service vsftpd start
4. 重启ftp服务器
#service vsftpd restart
5. 查看服务有没有启动
#netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
如果看到以上信息,证明ftp服务已经开启。
6.如果需要开启root用户的ftp权限要修改以下两个文件
#vi /etc/vsftpd.ftpusers中注释掉root
#vi /etc/vsftpd.user_list中也注释掉root
然后重新启动ftp服务。
7. vsftpd 500 OOPS: cannot change directory
登陆报错:
C:\>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
解决方法:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!
这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。
8. 永久开启,即os重启后自动开启ftp服务
方法一:
cd /etc/xinetd.d ,编辑ftp服务的配置文件gssftp的设置:
vi /etc/xinetd.d/gssftp ,将 修改两项内容:
(a) server_args = -l –a 去掉-a 改为server_args = -l
(b) disable=yes改为disable=no
(c) 保存退出。
方法二:
(a) system-config-services , 进入图形界面的System services查看是否有 vsftpd项,如果没有转到2.,保存后退出
(b) 用redhat第三张盘 安装此服务(开始--删除/增加程序),200K左右
(c) #setup
此时能看到vsftpd项,此时选中此services项,保存后退出.
㈣ 如何优雅地使用 Sublime Text
Sublime Text 2和3
相比于2,Sublime Text 3就秒启动一项,就压倒性地胜利了。因此在之后的叙述中都以Sublime Text 3为主角。并且3一直在不断的完善更新,具体的差异可参看Sublime Blog.简单的说:
ST3支持在项目目录里面寻找变量
提供了对标签页更好地支持(更多的命令和快捷键)
加快了程序运行的速度
更新了API,使用python3.3
强烈推荐朋友们使用3! 唯快不破,不解释。
优雅使用Sublime Text,插件则是不可缺少的存在;而插件的备份就显得非常的重要(譬如:各平台同步;更换系统/电脑,迅速使用已安装的插件)。这事儿也很简单,只需将Packages(Preferences > Browse Packages)中内容拷贝一份,同步云端即可;至于存储何处,云盘,Github,皆无不可;譬如先前有存一份于 sublime_packages,每有所需只要 Down 下来,替换掉原 Packages 下内容就好。
Sublime Text 3安装插件
Sublime Text的强大就是她拥有强大的课可扩展性。您可根据自己的需要安装不同的插件;这使得她变的无比强大的同时又不失轻便。
插件安装方式一:直接安装:
安装Sublime text 3插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->packages)。
插件安装方式二:使用Package Control组件安装:
按Ctrl+`调出console(注:安装有QQ输入法的这个快捷键会有冲突的,输入法属性设置-输入法管理-取消热键切换至QQ拼音)粘贴以下代码到底部命令行并回车:
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())
重启Sublime Text 3。如果在Perferences->package settings中看到package control这一项,则安装成功。按下Ctrl+Shift+P调出命令面板输入install 调出 Install Package 选项并回车,然后在列表中选中要安装的插件。
PS:国内使用SublimeText3,经常可能遇到无法安装可用插件问题,可remove掉Package Control重新安装下;如遇到连Package Control也无法安装,则可以在别处拷贝一份关于Package Control的文件-(Package Control.sublime-package)存放于Installed Packages目录之下即可。
Sublime Text 3插件推荐
无插件,不神器!根据自己的需要定制属于自己的强大插件集;作为在移动端旧游之后,又Web端新游的自己,墙裂推荐以下这么几款插件:
MarkDown Editing
SublimeText不仅仅是能够查看和编辑 Markdown 文件,但它会视它们为格式很糟糕的纯文本。这个插件通过适当的颜色高亮和其它功能来更好地完成这些任务。关于如何在SublimeText下高效些东西可参见文章:sublime text 2(3)下的Markdown写作 抑或是前段时间写下的追寻高效工作的一路折腾二
SideBarFolders
打开的文件夹都太多了? 来用这个来管理文件夹,世界原来也可以这么美好。
SideBarFolders
Sublime Terminal
这个插件可以让你在Sublime中直接使用终端打开你的项目文件夹,并支持使用快捷键。
ColorPicker
通常,如果你想使用一个颜色选择器则可能打开 Photoshop 或 GIMP。而在 Sublime Text 中,你可以使用内置的颜色选择器。安装完成后,只要按下Ctrl / Cmd + Shift + C 快捷键。
SublimeREPL
这可能是对程序员很有用的插件。SublimeREPL 允许你在 Sublime Text 中运行各种语言(NodeJS , Python,Ruby, Scala 和 Haskell 等等)。
Ctags插件
有童鞋抱怨Sublime Text不能支持函数的跳转(比如像Eclipse那样,按住Control点击该方法或者对象,即可跳转到定义的地方; Alt+←即可回到原处)。其实Sublime Text也可以借助插件实现之(当然,有些情况下:Can not find defination)毕竟这个也是借助正则来匹配完成的。因此这个也就要求代码很规范。这个插件相对来讲会有些麻烦,具体的可以参见:Sublime Text ctags 的配置.
SublimeLinter插件
SublimeLinter 是前端编码利器——Sublime Text 的一款插件,用于高亮提示用户编写的代码中存在的不规范和错误的写法,支持 javaScript、CSS、HTML、Java、php、Python、Ruby 等十多种开发语言。这篇文章介绍如何在 Windows 中配置 SublimeLinter 进行 JS & CSS 校验。
比如写例如像lua这样的弱语言脚本代码,有这个可以规避掉很多不该有的低级错误吧?当然这也需要你SublimeLinter安装完毕之后再安装一个SublimeLinter-lua即可。具体的使用可以参见:借助 SublimeLinter 编写高质量的 JavaScript & CSS 代码
SideBarEnhancements插件
SideBarEnhancements是一款很实用的右键菜单增强插件;在安装该插件前,在Sublime Text左侧FOLDERS栏中点击右键,只有寥寥几个简单的功能;安装了就相当于给其丰了大胸一般。
更强大的是,该插件还能让我们自定义快捷键呼出某个浏览器以预览页面!这样就不用到项目目录下寻找和拖动到特定浏览器中预览了。
安装此插件后,点击菜单栏的preferences->package setting->side bar->Key Building-User,键入以下代码:
[
{ "keys": ["ctrl+shift+c"], "command": "_path" },
//chrome
{ "keys": ["f2"], "command": "side_bar_files_open_with",
"args": {
"paths": [],
"application": "C:\Users\jeffj\AppData\Local\Google\Chrome\Application\chrome.exe",
"extensions":".*"
}
}
]
这里设置按Ctrl+Shift+C复制文件路径,按F2即可在Chrome浏览器预览效果(如果需要的话,也可以根据自己的需要为Firefox,Safari,IE,Opera等加上),当然你也可以自己定义喜欢的快捷键,最后注意代码中的浏览器路径要以自己电脑里的文件路径为准。
HTML-CSS-JS Prettify
一款集成了格式化(美化)html、css、js三种文件类型的插件,即便html,js写在PHP文件之内。插件依赖于nodejs,因此需要事先安装nodejs,然后才可以正常运行。插件安装完成后,快捷键ctrl+shift+H完成当前文件的美化操作。插件对html、css文件的美化不是非常满意,但还可以,后面将说明如何修改css美化脚本。本人用起来超级爽的,鉴于篇幅,就不赘述,可以参见这篇介绍。
CSScomb CSS属性排序:
有时候看看自己写的CSS文件,会不会觉得属性很乱查找不易维护难?CSScomb可以按照一定的CSS属性排序规则,将杂乱无章的CSS属性进行重新排序。选中要排序的CSS代码,按Ctrl+Shift+C,即可对CSS属性重新排序了,代码从此简洁有序易维护,如果不款选代码则插件将排序文件中所有的CSS属性。当然,可以自己自定义CSS属性排序规则,打开插件目录里的CSScomb.sublime-settings文件,更改里面的CSS属性顺序就行了。因为这个插件使用PHP写的,要使他工作需要在环境变量中添加PHP的路径,具体请看github上的说明。
SublimeTmpl 快速生成文件模板
一直都很奇怪为什么sublime text 3没有新建文件模板的功能,像html头部的DTD声明每次都要复制粘贴。用SublimeTmpl这款插件终于可以解脱了,SublimeTmpl能新建html、css、javascript、php、python、ruby六种类型的文件模板,所有的文件模板都在插件目录的templates文件夹里,可以自定义编辑文件模板。
SublimeTmpl默认的快捷键:
ctrl+alt+h html
ctrl+alt+j javascript
ctrl+alt+c css
ctrl+alt+p php
ctrl+alt+r ruby
ctrl+alt+shift+p python
如果想要新建其他类型的文件模板的话,先自定义文件模板方在templates文件夹里,再分别打开Default (Windows).sublime-keymap、Default.sublime-commands、Main.sublime-menu、SublimeTmpl.sublime-settings这四个文件照着里面的格式自定义想要新建的类型,这里就详细介绍了,请各位自己折腾哈~
Javascript-API-Completions:
支持Javascript、JQuery、Twitter Bootstrap框架、HTML5标签属性提示的插件,是少数支持sublime text 3的后缀提示的插件,HTML5标签提示sublime text3自带,不过JQuery提示还是很有用处的,也可设置要提示的语言。
sublime-jq-plugin
SFTP:快速编辑远程服务器文件
在Win下用Xftp 和 WinScp,被这种需要切换点击or F5刷新的手动操作蛋疼到无语;故此一遇见这SFTP,顿觉这世界都美好了许多。当然Sublime下面也有些其他同步插件,比如FtpSnyc,但是配置起来的错误提示一点都不人性化,就毫不留情的舍弃了。Sublime下有SFTP,只要Ctrl+S即可同步本地到服务器,妥妥的爽歪歪有么有?如何配置,请参见在 Sublime Text中使用 SFTP 插件快速编辑远程服务器文件;如欲使用FtpSync可参见Sublime使用及FtpSync远程同步;大道至简,因简而悦;开心垒码,值得折腾。
WakaTime -- 记录你的Code时间;
WakaTime可以做到精确地统计到你花在某个项目上的时间;WakaTime针对不同的IDE,拥有不同的插件,在Sublime上安装着插件,就能统计到我使用Sublime进行的所有项目的行为。可以高效管理和知晓自己code时间;并且,统计完善, 适合发朋友圈装逼(如果你喜欢的话)~
Waka的基本设计和rescuetime类似。每个人注册完将获取一个key,装一个客户端,把key输进去(登陆是同一个道理),然后它就把本地的所有行为带个key扔给服务器来统计,一段时间之后给你个报表。不过Waka做的真的很精准,精确到每一个文件用了多少秒,每一种语言用了多少时间。
安装和使用都很简单,请参见这里。另外一篇比较详细的文章时间都去哪了?用RescueTime和WakaTime来记录你的时间,对RescueTime和WakaTime有一个更为详细的叙述,可以一读。
DocBlockr: 代码块注释
可以快速的对函数进行注释。保持代码规范。支持多种语言,有 JavaScript (including ES6), PHP, ActionScript, Haxe, CoffeeScript, TypeScript, Java, Apex, Groovy, Objective C, C, C++ and Rust.
/*:回车创建一个代码块注释
/**:回车在自动查找函数中的形参等等。
它会生成 JSDoc 格式的注释。如果你从没有使用过类似的工具,DocBlockr 会让你觉得以前没有它是如何写代码的。帮助你创造你的代码注释,通过解析功能,参数,变量,并且自动添加基本项目;如果你愿意其更为便捷,不妨再结合AutoHotKey,高效注释,由此开启。
sublime-text-git: Git 版本控制
可视化的操作:帮助你与你的Git repo协议进行交互。它支持很多命令像init,push, pull, branch, stash,等等。使用它当然提前需要安装 Git,并做好响应的配置;对于这个插件,不妨看下这篇文章 Using Git Inside of Sublime Text to Improve Workflow,相信她的伴随不会让你失望的。
advancedNewFile: 快速创建文件
当我们在 Sublime Text 编辑器里我们可以通过快捷键command+n(win: ctrl+n),来新建一个文件,然后command+s(Win:ctrl+s)进行弹出保存框,填写文件名进行保存。还是老问题,麻烦!!我们接下来就通过安装advancedNewFile插件来提升我们在Sublime Text编辑器下的创建文件速度。
关乎其使用,安装完成之后,运用快捷键command+alt+n(win: ctrl+alt+n)
,Sublime Text底部会弹出输入框;我们只需在这个输入框里输入我们需要新建的文件名回车即可(我们甚至可以带路径,譬如:src/components/perfect.vue;这就会在当前项目目录下,建立该文件;需要注意的是这路径前面不可加 '/', 这会使得建立的路径成为用户目录,而非改项目目录)。默认情况下文件会存储在当前目录,如果当前没有目录,会存储在用户的家目录。
剩下些许其他的可以按需安装的插件,比如:
ConvertToUTF8 支持 GBK, BIG5, EUC-KR, EUC-JP, Shift_JIS 等编码的插件
Bracket Highlighter 用于匹配括号,引号和html标签。对于很长的代码很有用。安装好之后,不需要设置插件会自动生效
DocBlockr 可以自动生成PHPDoc风格的注释。它支持的语言有Javascript, PHP, ActionScript, CoffeeScript, Java, Objective C, C, C++
<font color="purple">Emmet(Zen Coding)</font>快速生成HTML代码段的插件,强大到无与伦比:可以超快速编写HTML/CSS/JS,当然这个插件还支持多种编译环境,如常见的:Eclipse/Aptana、Coda、Notepad++、Adobe Dreamweaver、TextMate等,web开发必备!!!。
jsFormat 格式化js代码,懂者自懂;强迫症Coder必备!默认快捷键Ctrl+Alt+F。
phpFormat 格式化php代码,懂者自懂;强迫症Coder必备!
CSS Compact Expand CSS属性展开收缩:写CSS的盆友,喜欢将其写多行还是一行(个人喜欢将其格式化为多行)?如果阅读别人的代码不符合自己的习惯,可以用CSS Compact Expand这个插件将CSS格式化一下,按 Ctrl+Alt+[ 收缩CSS代码为一行显示,按 Ctrl+Alt+] 展开CSS代码为多行显示;强迫症Coder必备!。
Autoprefixer插件:这是一款CSS3私有前缀自动补全插件;该插件使用CanIUse资料库(当然,SublimeText自然也有<font color="purple">CanIUse</font>这个插件咯),能精准判断哪些属性需要什么前缀,与CssComb插件一样,该插件也需要系统已安装Node.js环境;使用方法:在输入CSS3属性后(冒号前)按Tab键即可。
YUI Compressor:压缩JS和CSS文件,按F7键后,若压缩当前文件(demo.js),则压缩后的文件(demo.min.js)保存在该文件的同级目录,需要安装java的JDK。使用方法:YUI Compressor
ClickableURLs:可点击的URL
使用小插件ClickableURLs可以让文件中的URL能够点击。
Vue Syntax Highlight: Vue(*.vue)高亮插件;于前端而言,使用Vue框架开发,是一个很酷爽的存在,那么此插件也就很有必要拥有;同时Jade, SASS等插件也是很有拥有的必要,谁用谁知道(说到用vue, 这vue-cli就蛮有使用的必要了( Webpack, Eslint, Test等都配置完善,十分贴心); 而写Js代码,于稍大项目 Eslint 就很有使用必要,而 sublime 在针对使用 Eslint 的 *.vue文件,目测还没有很好格式化插件,坐等诞生😳)。
终极王道:自己编写专用的Sublime Text插件。虽然说各个方面比如移动端,Web前段,服务器端,非Coder的Writer所需要的方便已经被集成在了不同的插件中。但譬如,需要快捷打开PC端的某个模拟器,便捷的进行某些校验,只要你想的到的基本都可以将其在插件内,以快捷键处理之。至于如何编写SublimeText插件,请参看这里编写自己的Sublime Text2 插件
定制属于自己的快捷键
首先要会使用SublimeText内置的快捷键:
比如 Commond Shift P 打开命令面板:例如打开Package Control安装各种插件;可以可以输入Set(Snytax)来改变使用的语言环境,瞬间切换等等。
设置快捷键。在SublimeText里,打开Preferences -> Key Bindings - User,我设置的快捷键:
[
{ "keys": ["ctrl+f9"], "command": "build" },
{ "keys": ["f10"], "command": "build", "args": {"variant": "Run"} },
{ "keys": ["ctrl+shift+x"], "command": "toggle_comment", "args": { "block": true } },
]
㈤ xshell连接不到linux
ssh服务没启动吧。用命令 service sshd start把服务启动就可以连接了。
㈥ FtpClient
当时我用SUN 的FtpClient.get()方法下载文件是有问题的,我推荐你用org.apache.commons.net.ftp.FTPClient下载文件,可以解决中文文件下载问题,你可以去我博客里看看哦:http://hi..com/renliangli/blog/item/6ccb6b3a049d95c9d46225a5.html,文章摘给你吧:
现在就来看下我解决的代码吧,希望对遇到同样问题的人有点帮助。
1)把ftp地址中的文件保存到本地的java类源码:
package test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
public class Ftp {
/**
* Description: 从FTP服务器下载文件
* @param ip FTP服务器的ip地址
* @param port FTP服务器端口,默认为:21
* @param username FTP登录账号
* @param password FTP登录密码
* @param remotePath FTP服务器上的相对路径
* @param fileName 要下载的文件名
* @param localPath 下载后保存到本地的路径
* @return
*/
public static boolean downFile(String ip, int port,String username, String password, String remotePath,String fileName,String localPath) {
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ip, port);
//下面三行代码必须要,而且不能改变编码格式,否则不能正确下载中文文件
ftp.setControlEncoding("GBK");
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(username, password);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles();
for(int i = 0; i < fs.length; i++){
FTPFile ff = fs[i];
if(ff.getName().equals(fileName)){
File localFile = new File(localPath+File.separator+ff.getName());
//
OutputStream is = new FileOutputStream(localFile);
//注意此处retrieveFile的第一个参数由GBK转为ISO-8859-1编码。否则下载后的文件内容为空。
//原因可能是由于aix系统默认的编码为ISO-8859-1
ftp.retrieveFile(new String(ff.getName().getBytes("GBK"),"ISO-8859-1"), is);
is.close();
}
}
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Ftp.downFile("10.32.166.144", 21, "test", "test", "/flashfxp", "激活码.txt", "C:");
}
}
2)将ftp资源以文件流的方式打开,由用户决定保存在本地何处,程序运行后可以从IE跳出框中打开或者保存的Action代码,利用Struts1写的:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.mocha.test;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class DownloadAction extends Action{
/** *//**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
* @throws IOException
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException{
OutputStream os=null;
try {
os = response.getOutputStream();
response.reset();
downFile("10.32.166.144", 21, "test", "test", "/flashfxp", "激活码.txt",os,response);
} catch (IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try{
os.close();
} catch (IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
/**
* Description: 从FTP服务器下载文件
* @param ip FTP服务器ip地址
* @param port FTP服务器端口,默认为21
* @param username FTP登录账号
* @param password FTP登录密码
* @param remotePath 附件在FTP服务器上的绝对路径
* @param fileName 要下载的文件名
* @param outputStream 输出流
* @param response
* @return
*/
public static boolean downFile(String ip, int port,String username, String password, String remotePath
,String fileName,OutputStream outputStream,HttpServletResponse response) {
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ip, port);
//下面三行代码必须要,而且不能改变编码格式
ftp.setControlEncoding("GBK");
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(username, password);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles();
for(int i = 0; i < fs.length; i++){
FTPFile ff = fs[i];
if(ff.getName().equals(fileName)){
String filename = fileName;
//这个就就是弹出下载对话框的关键代码
response.setHeader("Content-disposition",
"attachment;filename=" +
URLEncoder.encode(filename, "utf-8"));
//将文件保存到输出流outputStream中
ftp.retrieveFile(new String(ff.getName().getBytes("GBK"),"ISO-8859-1"), outputStream);
outputStream.flush();
outputStream.close();
}
}
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}
}
差点忘了利用ftpclient要用到的jar包了,呵呵,就这两个了:commons-net-1.4.1.jar、jakarta-oro-2.0.8.jar
对了我用的jdk是1.4的。所以commons-net-1.4.1.jar用了这个版本比较老的。
㈦ CenterOs7怎么开启FTP服务
1. yum -y install vsftpd 安装vsftpd
2.编辑ftp配置文件
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //禁止匿名登录
chroot_local_user=YES //将所有用户限制在主目录
chroot_list_enable=YES //是否启动限制用户的名单、
chroot_list_file=/etc/vsftpd/chroot_list //不启用限制的名单
allow_writeable_chroot=YES
㈧ Mac上有哪些可以替代Xshell的工具
1、Alfred 是 Mac 平台上最为传奇的效率工具。Mac 对原生 Shell 的支持是无数程序员喜爱 Mac 的理由之一,程序员用 Mac 而不用 Shell,基本等于自断一臂,威力将大打折扣。Shell 并非凭空而来,它的入口是终端工具。OS X自带的终端工具虽然不错,但是和 iTerm 2一比,就逊色很多了。
2、iTerm2 是 OS X 下一款开源免费的的终端工具。
3、IDE 是图形化的集成开发工具,具备精准的词法分析、编程提示、调试等功能,功能之繁复用户自知,如果做工业级编程和团队协作的话,推荐使用 IDE。
4、Homebrew 是 OS X 的包管理工具,Ruby 社区的作品,功能类似 Ubuntu 下的apt-get。
5、Git 是一款分布式版本控制和软件配置管理软件,类似 SVN 和 CVS。
6、xScope 是一款强大的辅助设计工具,可以精确度量屏幕上的 UI 元素,尤其适合全栈工程师。
㈨ 如何将wordpress博客顺利地搬家到阿里云服务器
第一步,到阿里云买个ECS服务器,具体大家可以看下这篇文章《阿里云ecs云服务器建立wordpress个人博客教程》。不过在选镜像的时候,建议大家选择cectos 6.5 32位的,不用选择wordpress博客了,如下图:
第二步,网络下载一个Xshell软件和一个Xftp 4软件,然后登录Xshell软件,在阿里云后台能看到公网IP连接,再输入购买服务器时的密码,如下图:
第三步,由于服务器我是自学的,不太懂,为了方便使用服务器我们需要安装一个WDCP控制面板,我们就可以把服务器当成虚拟主机来用,具体大家看下
这篇文章《阿里云ecs云服务器安装wdcp控制面板教程》,安装成功后在浏览器输入公网IP就会提示WDCP安装成功了,如下图:
第四步,我在使用这个WDCP控制面板的时候,安装上我看了是最新的版的,不过在搬家后会遇到一个502的错误。所以,为了防止搬家后出现502的错误最好先给WDCP升级一下,看下这篇文章《阿里云ecs云服务器使用wdcp控制面板建站教程》,错误提示如下图:
第五步,登录wdcp控制面板后台,为了安全起见,把后台密码,数据库密码给改了。后台有一个创建整站和创建站点的功能,选择创建整站,输入域名,FTP,数据库等相关信息,具体看下这篇文章《阿里云ecs云服务器使用wdcp控制面板建站教程》
第六步,打开Xshell软件登录,在右上角有个绿色的箭头点击下就可以打开XFTP4软件,在/www/web/shaolianhu_com/public_html这个文件下面就是网站的根目录,把里面的文件给删除了,把自己打包的文件给上传到这里,如下图:
第七步,登录WDCP控制面板,在左边导航找到mysql登录,找到你刚才创建整站时写的数据库名,然后打开导入,上传你备份的数据库文件,如果文件较大,建议弄成ZIP格式的压缩包上传,如下图:
第八步,把网站根目录下的wp-config.php文件下载到电脑上,下载一个UltraEdit软件,如果安装不了就下载一个破解版的。安装后把wp-config.php里面数据库信息给配置下,然后保存为utf-8 无BOM格式,上传覆盖,如下图:
第九步,这时候打开我们的网站一般都能打开,如果打不开就把网站根目录下的.htaccess文件删除了,这时候网站就能打开了。网站能打开后到博
客后台把伪静态先恢复为动态,再改为动态保存,把.htaccess文件再上传,这时候伪静态也成功了。如果大家用XFTP4看不到.htaccess文
件,就用FlashFXP工具登录就能看到了,如下图:
第十步,如果登录博客后台出现Warning: Cannot modify header information提示,请看下这篇文章《wordpress博客Warning: Cannot modify header information解决办法》,如下图:
第十一步,如果文章上传图片出现无法将上传的文件移动至wp-content/uploads/2014/11.如果是大家用的是虚拟主机有可能是
空间满了,我们用的是服务器当然没这种情况,那么就把wp-content/uploads/权限改为777就行了,还有一种情况就是在博客后台多媒体设
置,不要选择以年月日形式上传,如下图:
wordpress博客到此就搬家成功了,遇到的几个问题只要按照我上面的方法去做就能解决。