`
huibin
  • 浏览: 739975 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

jsp 往 FTP 上传文件问题

阅读更多

 FtpUtil:

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;




import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;

public class FtpUtil {
    FtpClient ftpClient ;
    /** 
        * connectServer 
        * 连接ftp服务器 
        * @throws java.io.IOException 
        * @param path 文件夹,空代表根目录 
        * @param password 密码 
        * @param user   登陆用户 
        * @param server 服务器地址 
        */ 
      public void connectServer(String server, String user, String password,  String path) 
      throws IOException  
      { 
         // server:FTP服务器的IP地址;user:登录FTP服务器的用户名 
         // password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径 
         ftpClient = new FtpClient(); 
         ftpClient.openServer(server); 
         ftpClient.login(user, password); 
         //path是ftp服务下主目录的子目录 
         if (path.length() != 0)  ftpClient.cd(path); 
         //用2进制上传、下载 
         ftpClient.binary();      
     } 
      public void connectServer() throws IOException  
      { 
         // server:FTP服务器的IP地址;user:登录FTP服务器的用户名 
         // password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径 
         ftpClient = new FtpClient(); 
         ftpClient.openServer("221.193.212.119"); 
         ftpClient.login("admin", "admin"); 
         //path是ftp服务下主目录的子目录 
        ftpClient.cd("test"); 
         
         //用2进制上传、下载 
         ftpClient.binary();      
     } 
      
     /** 
        * upload 
        * 上传文件 
        * @throws java.lang.Exception 
        * @return -1 文件不存在 
        *          -2 文件内容为空  
        *          >0 成功上传,返回文件的大小 
        * @param newname 上传后的新文件名 
        * @param filename 上传的文件 
        */ 
     public long upload(String filename,String newname) throws Exception  
     { 
         long result = 0; 
         TelnetOutputStream os = null; 
         FileInputStream is = null; 
         try {    
             connectServer();
             java.io.File file_in = new java.io.File(filename); 
             if (!file_in.exists()) return -1; 
             if (file_in.length()==0) return -2; 
             os = ftpClient.put(newname); 
             result = file_in.length(); 
             is = new FileInputStream(file_in); 
             byte[] bytes = new byte[1024]; 
             int c; 
             while ((c = is.read(bytes)) != -1) { 
                  os.write(bytes, 0, c); 
             } 
         }finally { 
             if (is != null) { 
                 is.close(); 
             } 
             if (os != null) { 
                os.close(); 
             } 
             closeServer();
         } 
        return result; 
     } 
     /** 
        * upload 
        * @throws java.lang.Exception 
        * @return  
        * @param filename 
        */ 
     public long upload(String filename) 
     throws Exception  
     { 
        String str = ""; 
        System.out.println("11111");
        if (filename.indexOf("/")>-1) 
        { 
            str = filename.substring(filename.lastIndexOf("/")+1); 
        }else 
        { 
            str = filename; 
        } 
        System.out.println("22222");
        String suffix=filename.substring(filename.lastIndexOf("."),filename.length());
        
        String md5=MD5Digest.Md5(str);
        java.text.SimpleDateFormat simpledateformat;
        simpledateformat = new java.text.SimpleDateFormat ("yyyyMMddhhmmssss");
        Date dt=new Date();
        String strDate=simpledateformat.format(dt);
           String newname=strDate+md5+suffix; 
           
           
           System.out.println("filename:"+filename);

        System.out.println("newname:"+newname);
        
        
      
       return upload(filename,newname);
       
     } 
      
     /** 
        *  download 
        *  从ftp下载文件到本地 
        * @throws java.lang.Exception 
        * @return  
        * @param newfilename 本地生成的文件名 
        * @param filename 服务器上的文件名 
        */ 
     public long download(String filename,String newfilename)  
     throws Exception 
     {   
        long result = 0; 
        TelnetInputStream is = null; 
        FileOutputStream os = null; 
        try  
        { 
           is = ftpClient.get(filename);        
           java.io.File outfile = new java.io.File(newfilename); 
           os = new FileOutputStream(outfile); 
           byte[] bytes = new byte[1024]; 
           int c; 
           while ((c = is.read(bytes)) != -1) { 
               os.write(bytes, 0, c); 
               result = result + c; 
           } 
        } catch (IOException e)  
        { 
           e.printStackTrace(); 
        } 
        finally { 
             if (is != null) { 
                 is.close(); 
             } 
             if (os != null) { 
                os.close(); 
             } 
         } 
         return result; 
     } 
     /** 
      * 取得某个目录下的所有文件列表 
      * 
      */ 
     @SuppressWarnings({ "unchecked", "deprecation" })
    public List getFileList(String path) 
     { 
        List list = new ArrayList(); 
        try  
        { 
           DataInputStream dis = new  DataInputStream(ftpClient.nameList(path)); 
           String filename = ""; 
           while((filename=dis.readLine())!=null)   
           {   
             list.add(filename);         
           }   
        
        } catch (Exception e)  
        { 
           e.printStackTrace(); 
        } 
        return list; 
     } 
      
     /** 
        * closeServer 
        * 断开与ftp服务器的链接 
        * @throws java.io.IOException 
        */ 
     public void closeServer() 
     throws IOException  
     {    
       try  
       { 
          if (ftpClient != null)  
          { 
            ftpClient.closeServer();      
          } 
       } catch (IOException e) { 
          e.printStackTrace(); 
       } 
     } 
        
}





 

Upload_append.jsp :

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.slwlsh.common.FtpUtil"%>
<%
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf8");
response.setCharacterEncoding("UTF-8");
String filename=request.getParameter("filename");
FtpUtil ftp=new FtpUtil();
Long result=ftp.upload(filename);
if(result>0){
out.print("OK");
}else{
out.print("shibai ");
}
%>

 

 

upload.jsp form

<form method="post"  action="Upload_append.jsp" >
<input type="file" name="filename"><BR />
<input type="submit" name="submit" value="上传">
</form>

 

http://topic.csdn.net/u/20100227/15/abacab97-d49b-46b8-9689-3b2227ba52d3.html

分享到:
评论
1 楼 ctrlc 2013-12-26  
你这是从web服务器上传到FTP服务器上的吧,能从用户电脑上上传用户的文件?

相关推荐

    java+jsp代码实现从FTP服务器上传下载文件

    java+jsp代码实现从FTP服务器上传下载文件。 里面给了java方法和jsp页面的代码。主要是实现从FTP服务器上面下载文件到自己本地文件夹下面。另外还给了几个网站供大家参考。

    FTP上传文件控件(jsp)

    通过jsp页面运用FTP服务器上传文件到tomcat服务器,传统的上传文件是用input页面控件,局限于不能上传多个文件。本控件可上传多个文件。解压后external\ImportFtp.htm内有FTP接口说明。

    jsp版本ftp文件上传与下载

    jsp版的ftp文件上传与下载,可以直接运行程序,并解决了文件名为中文时的乱码问题

    FTP上传(JSP/HTML嵌入)

    在web应用中,大文件的上传多是用FTP协议实现的!--而FTP的上传需要客户端,大部分是用页面嵌入APPLET或其他控件的模式---这个是用Delphi实现的,直接用就可以!!! 还有个Applet版本的,过一段时间我会发上来...

    Jsp+Servlet实现文件上传下载 文件上传(一)

    主要为大家详细介绍了Jsp+Servlet实现文件上传下载中的第一部分文件上传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    规则引擎-FTP上传

    我们可以把已完成的规则包、jsp页面可以上传到规则服务器(规则管理系统)上,这种...但是有时我们服务器上需要的是完整的规则包、jsp页面、规则包的RSC文件,这时候我们就可以用规则配置器中“FTP上传”的功能去实现。

    hudson的ftp上传插件无法正常使用问题的处理

    解决 hudson的ftp上传插件问题 1 只能选择当前构建项目目录下的文件,无法支持上传在这个项目上下文环境之外的文件 2 实际上根本没有上传到指定的目录下,总是上传到ftp用户的根目录 3 有些环境下没有错误但是...

    java使用ftp上传文件示例分享

    主要介绍了java使用ftp上传文件示例,需要的朋友可以参考下

    用Java实现FTP批量大文件上传下载

    用Java实现FTP批量大文件上传下载特别详细的思路,下载

    JAVA技术实现上传下载文件到FTP服务器(完整)

    主要介绍了JAVA技术实现上传下载文件到FTP服务器(完整),本文使用 Apache Jakarta Commons Net(commons-net-3.3.jar) 基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作,需要的朋友可以参考下

    FTP源代码例子

    //"upftpfile"用ftp上传后的新文件名 //os = ftpClient.put("upftpfile"); os = ftpClient.put("MainCtrl.zip"); java.io.File file_in = new java.io.File(filename); if (file_in.length()==0) { return ...

    上传,页面预览,ftp传输

    3.代码中包含ftp文件传输至服务器代码(因为公司要求是将附件传输到 文件服务器) 使用注意: 需要注意文件路径配置文件file.properties (自己找不到就别赖我了...) 预览功能使用的是项目中的 yuLanFile文件夹...

    火狐WEB文件管理器(JSP编写),附加JSP探针

    火狐WEB文件管理器(JSP编写),附加JSP探针 &lt;br&gt;这是一个使用JSP编写的WEB文件管理器,在JDK1.5和Tomcat5.5上测试通过。...如果你所在的环境不能使用FTP,那么可以使用本工具上载你你所修改的JSP代码和其它文件。

    关于ftp下显示的时间和系统时间不一致的解决方法

    您可能感兴趣的文章:javascript 显示当前系统时间代码Android开发技巧之永不关闭的Toast信息框(长时间显示而非系统关闭)js显示当前系统时间的代码C#中动态显示当前系统时间的实例方法jsp实现页面实时显示当前系统...

    调用FtpClient类上传文件(java)

    FtpClient类上传文件(java) 运行需要的包: ojdbc14.jar jsp-api.jar dom4j-1.6.1.jar log4j-1.2.14.jar

    火狐WEB文件管理器(JSP编写) JSP探针.rar

    这是一个使用JSP编写的WEB文件管理器,在JDK1.5和Tomcat5.5上测试通过。可对网站上的目录和文件进行读、写、删除和上载等操作...如果你所在的环境不能使用FTP,那么可以使用本工具上载你你所修改的JSP代码和其它文件。

    网页版文件上传控件 File Upload Control For Html version:1.0.0.11

    与您的网页系统进行无缝整合,使您的系统可自如地上传文件,并能及时获取与上传文件相关的各种信息。控件提供各种调用的参数和方法,同时还有各个状态的回调函数,无论您使用自带的标准界面,或是使用自己定制的...

    Java项目:在线网盘系统(java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP)

    一、项目简述 ... 不需要注册账号,也可以上传满足条件的临时文件,但是只4小时内有效。 文件的管理,上传、下载、...JSP +Springboot+ SpringMVC + MyBatis + ThymeLeaf + FTP+ JavaScript + JQuery + Ajax + maven等等

Global site tag (gtag.js) - Google Analytics