【api获得源码】【蓝色天空源码】【标签切换 源码】ftpget源码

1.FtpClient
2.我自己弄的源码免费空间和域名,全部都开通了,源码用ftp上传源码后,源码可以正常访问网站。源码但是源码我只要访问后台就

ftpget源码

FtpClient

       当时我用SUN 的FtpClient.get()方法下载文件是有问题的,我推荐你用org.apache.commons.net.ftp.FTPClient下载文件,源码api获得源码可以解决中文文件下载问题,源码你可以去我博客里看看哦:/renliangli/blog/item/6ccb6b3adc9da5.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服务器端口,默认为:

       * @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--1编码。否则下载后的文件内容为空。

        //原因可能是由于aix系统默认的编码为ISO--1

        ftp.retrieveFile(new String(ff.getName().getBytes("GBK"),"ISO--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("...", , "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.mons.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("...", , "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服务器端口,默认为

       * @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--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用了这个版本比较老的。

我自己弄的免费空间和域名,全部都开通了,用ftp上传源码后,tcpdump源码机制可以正常访问网站。但是我只要访问后台就

       对于问题本身,也不是明确的固定答案

       这个问题出现有很多综合因素

       比如程序与环境不符

       比如网站所在目录权限不足

       比如缺少访问的默认文件

       等等。。。都可能出现这种提示。。dev port源码

       最跟本的还得实际查看,综合分析,检查网站所在的各种环境因素

       而不是只看这一句就得到一个答案。

       如果只是玩玩,用那些免费空间无伤大雅,但如果想正经做网站,好好做自己想做的事,我建议你还是选个正规的空间服务商,现在空间都便宜的要命,几十块就可以做基本网站足够了。而当今社会,花钱最重要的就是得到服务,你表面上没花钱,但是当你的网站真的遇到问题,服务器真的遇到故障,谁去为你保障运营?出这点小事,尚且无人管你,要靠几率去解决,真正你的网站运行起来出问题用户怎么办?

       是不是这个道理。。。不要因小失大。

       有句话说的好,网站不同于其他常见事业,如果前期你节约了不该节约的成本,在网站运营后期会让你付出N倍的代价去弥补,甚至。。。无法弥补。。。

更多内容请点击【探索】专栏

精彩资讯