`
huibin
  • 浏览: 756780 次
  • 性别: 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 文件上传下载 #### 一、JSP 页面代码实现 在JSP页面...

    jsp版本ftp文件上传与下载

    4. **上传文件**:使用`storeFile()`方法将本地文件上传到FTP服务器,确保文件路径正确。 5. **处理中文文件名的乱码**:在上传前,需要对文件名进行编码转换,如使用`URLEncoder.encode(file.getName(), "UTF-8")`...

    FTP上传文件控件(jsp)

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

    FTP上传(JSP/HTML嵌入)

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

    基于strurs2文件上传,利用FTP将文件直接上传至指定的FTP服务器

    为了实现FTP上传,Struts2 Action需要处理`File`对象,所以我们在Action类中声明`file`属性,同时需要相应的getter和setter方法。在JSP页面上,我们可以使用Struts2的`&lt;s:form&gt;`和`&lt;s:file&gt;`标签来创建文件上传表单...

    VC写的上传文件到FTP服务器的OCX控件,网页可调用

    在本案例中,"VC写的上传文件到FTP服务器的OCX控件"是一个利用VC++编写的ActiveX(OCX)控件,它的主要功能是在网页中实现文件的上传操作,这在Web应用中非常常见,尤其是需要用户提交文件的情况。 ActiveX控件是...

    ftp上传大附件

    本示例("ftp上传大附件demo")旨在教你如何利用FTP服务来处理大文件的上传。 FTP上传大附件的关键在于正确设置和管理数据传输,因为大文件可能会超过单个TCP连接的最大传输限制。以下是一些重要的知识点: 1. **...

    FTP上传WEB化,linux文件管理带日志操作,带删除备份文件

    标题中的“FTP上传WEB化”指的是通过Web界面...用户可以通过Web界面上传文件到FTP服务器,同时系统会记录操作日志并支持删除备份文件的管理功能。付费后,开发者会提供SQL相关资料,可能涉及数据库设计或数据导入导出。

    java-jsp-upload-and-download.rar_ftp java_ftp jsp_jsp FTP

    4. 使用FTPClient的storeFile方法上传文件。这需要一个本地文件路径和远程文件名。 5. 在上传完成后,确保关闭数据连接并断开FTP连接。 在JSP中,我们可以创建表单让用户选择本地文件并提交,然后在服务器端处理...

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

    ### hudson的ftp上传插件无法正常使用问题的处理 #### 问题概述 在使用Hudson进行构建自动化过程中,为了实现构建结果的自动化部署,通常会选择使用Hudson的FTP上传插件来实现构建产物的自动上传功能。但在实际使用...

    规则引擎-FTP上传

    【规则引擎-FTP上传】是将规则包和相关的jsp页面通过FTP(文件传输协议)上传到规则服务器,以便其他用户能够从服务器上下载并导入到本地进行共享和使用。这一功能特别适用于需要完整规则包、jsp页面以及RSC(可能为...

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

    Java使用FTP上传文件是通过Apache Commons Net库中的`FTPClient`类实现的。Apache Commons Net是一个功能丰富的网络协议库,提供了对FTP、SMTP等网络协议的支持。以下是对标题和描述中涉及的知识点的详细说明: 1. ...

    JAVA WEB FTP 中文上传工具

    这个工具使得用户能够在JSP或HTML页面中嵌入FTP上传功能,方便地处理中文文件名的问题,确保在跨平台的环境中正确无误地上传包含中文字符的文件。 FTP(File Transfer Protocol)是一种标准网络协议,用于在计算机...

    调用FtpClient类上传文件(java)

    // 上传文件到FTP服务器 boolean uploadSuccess = ftpClient.storeFile("/remote/path/on/server", fis); if (uploadSuccess) { System.out.println("Successfully uploaded file."); } else { System.out....

    上传jsp demo

    【标题】"上传jsp demo" 涉及到的核心知识点主要围绕着JSP(Java Server Pages)技术在文件管理系统中的应用。JSP是Java的一种动态网页技术,它允许开发人员在HTML页面中嵌入Java代码,实现服务器端的动态内容生成。...

    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 ...

    JavaBean实现多个文件上传的两种方法

    在JavaBean中,FTP上传实现可能涉及创建FTPClient实例,设置必要的FTP服务器参数,执行登录操作,然后使用`storeFile()`方法上传文件,最后确保连接正确关闭。这一过程相对独立于HTTP上传,更适合需要高安全性和复杂...

    JAVA中的FtpClient与FTPClient,并实现jsp面下载ftp服务器上的文件.docx

    ### JAVA中的FtpClient与FTPClient详解及JSP页面实现FTP服务器文件下载 #### 一、引言 在Java开发中,与FTP服务器交互是非常常见的需求之一,尤其是在处理文件上传下载的过程中。本文将详细介绍Java中两种不同的FTP...

Global site tag (gtag.js) - Google Analytics