- 浏览: 89080 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
kuge6688:
我的中文还不显示啊。。。。。。。。。。。。。。。求
Itext中文处理pdf(转) -
xmllong:
奇怪,第一个代码例子就不行,只输出start ok,中间的中文 ...
Itext中文处理pdf(转) -
byandby:
Class类有一个forName()静态方法,可以根据传入的类 ...
Java中的Class对象 -
xiaoyuqi00:
c:/aoke_temp/userInfo2009070710 ...
用jspsmartupload下载文件 -
wsbwindy:
good
怎样用JspSmartUpload实现文件上传攻略
前几天写过一编"关于java的http协议文件上传实用例题"的文章;今天还想写编关于java用ftp上传文件的内容。我来说说2者的优缺点;
1:用http协议上传更适合web编程的方便;传小于1M文件速度要比用ftp协议上传文件略快。安全性好;不像ftp那样;必须要启动一个ftp服务才行。
2:用ftp协议上传文件大于1M的文件速度比http快;文件越大;上传的速度就比http上传快的倍数越大。而且用java编写程序;ftp比http方便。好,废话少说;我们先搭建一个实例来理性认识一下用java编写ftp上传文件的技术。
首先在本机启动一个ftp服务,ftp的用户:"IUSR_ZJH" 密码:"123";随后在ftp主目录下建一个名为upftp的子目录;下面有4个文件就可启动这个例题了。
文件1:MainCtrl.java(servlet文件)内容如下:
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.FileInputStream;
import java.io.IOException;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
public class MainCtrl extends HttpServlet {
private FtpClient ftpClient;
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
try {
//连接ftp服务器
connectServer("127.0.0.1", "IUSR_ZJH", "123", "upftp");
//上传文件;并返回上传文件的信息
req.setAttribute("inf", upload(req.getParameter("file_name")));
} catch (Exception e) {
System.out.println(e.toString());
req.setAttribute("inf", e.toString());
req.getRequestDispatcher("view_inf.jsp").forward(req, resp);
return;
} finally {
if (ftpClient != null) {
ftpClient.closeServer();
}
}
req.getRequestDispatcher("view_inf.jsp").forward(req, resp);
}
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
//连接ftp服务器
private 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();
}
//上传文件;并返回上传文件的信息
private String upload(String filename) throws Exception {
TelnetOutputStream os = null;
FileInputStream is = null;
try {
//"upftpfile"用ftp上传后的新文件名
os = ftpClient.put("upftpfile");
java.io.File file_in = new java.io.File(filename);
if (file_in.length()==0) {
return "上传文件为空!";
}
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();
}
}
return "上传文件成功!";
}
}
文件2:upftp.htm(前台操作页面)内容如下:
<html><body> <form method="post" action="/upftp/MainCtrl"> <!-- C:\\Downloads\\setup_kubao.exe客户端真实文件路径 --> <input type="text" name="file_name" size="38" value="C:\\Downloads\\setup_kubao.exe" /> <input type="submit" /> </form></body> </html>
文件3:view_inf.jsp(信息提示页面)和upftp.htm一样放在context的根目录下,
内容如下:
<%@page contentType="text/html;charset=UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
th
{
background-color: #4455aa;
color: white;
font-size: 14px;
font-weight:bold;
}
td.TableBody1
{
background-color: #FFFFF0;
color: white;
font-size: 14px;
font-weight:bold;
font-color: red;
}
.tableBorder1
{
width:97%;
border: 1px;
background-color: #6595D6;
}
</style>
</head>
<body>
<%String inf = (String) request.getAttribute("inf");
if (inf == null) {
inf = request.getParameter("inf");
}%>
<table class="tableborder1" style="width: 75%;" align="center"
cellpadding="3" cellspacing="1">
<tbody>
<tr align="center">
<th colspan="2" height="25" width="100%">信 息 提 示:</th>
</tr>
<tr align="center">
<td class="tablebody1" colspan="2" width="100%" height="200"><%=inf%></td>
</tr>
<tr align="center">
<td><input name="back" value="返 回" onclick="history.back();"
type="button" /></td>
</tr>
</tbody>
</table>
</body></html>
文件4:web.xml(j2ee的备置文件)放在WEB-INF目录下,
内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<!--Servlet name-->
<servlet>
<servlet-name>MainCtrl</servlet-name>
<servlet-class>MainCtrl</servlet-class>
</servlet>
<!--Servlet mapping-->
<servlet-mapping>
<servlet-name>MainCtrl</servlet-name>
<url-pattern>/MainCtrl</url-pattern>
</servlet-mapping>
</web-app>
1:用http协议上传更适合web编程的方便;传小于1M文件速度要比用ftp协议上传文件略快。安全性好;不像ftp那样;必须要启动一个ftp服务才行。
2:用ftp协议上传文件大于1M的文件速度比http快;文件越大;上传的速度就比http上传快的倍数越大。而且用java编写程序;ftp比http方便。好,废话少说;我们先搭建一个实例来理性认识一下用java编写ftp上传文件的技术。
首先在本机启动一个ftp服务,ftp的用户:"IUSR_ZJH" 密码:"123";随后在ftp主目录下建一个名为upftp的子目录;下面有4个文件就可启动这个例题了。
文件1:MainCtrl.java(servlet文件)内容如下:
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.FileInputStream;
import java.io.IOException;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
public class MainCtrl extends HttpServlet {
private FtpClient ftpClient;
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
try {
//连接ftp服务器
connectServer("127.0.0.1", "IUSR_ZJH", "123", "upftp");
//上传文件;并返回上传文件的信息
req.setAttribute("inf", upload(req.getParameter("file_name")));
} catch (Exception e) {
System.out.println(e.toString());
req.setAttribute("inf", e.toString());
req.getRequestDispatcher("view_inf.jsp").forward(req, resp);
return;
} finally {
if (ftpClient != null) {
ftpClient.closeServer();
}
}
req.getRequestDispatcher("view_inf.jsp").forward(req, resp);
}
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
//连接ftp服务器
private 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();
}
//上传文件;并返回上传文件的信息
private String upload(String filename) throws Exception {
TelnetOutputStream os = null;
FileInputStream is = null;
try {
//"upftpfile"用ftp上传后的新文件名
os = ftpClient.put("upftpfile");
java.io.File file_in = new java.io.File(filename);
if (file_in.length()==0) {
return "上传文件为空!";
}
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();
}
}
return "上传文件成功!";
}
}
文件2:upftp.htm(前台操作页面)内容如下:
<html><body> <form method="post" action="/upftp/MainCtrl"> <!-- C:\\Downloads\\setup_kubao.exe客户端真实文件路径 --> <input type="text" name="file_name" size="38" value="C:\\Downloads\\setup_kubao.exe" /> <input type="submit" /> </form></body> </html>
文件3:view_inf.jsp(信息提示页面)和upftp.htm一样放在context的根目录下,
内容如下:
<%@page contentType="text/html;charset=UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
th
{
background-color: #4455aa;
color: white;
font-size: 14px;
font-weight:bold;
}
td.TableBody1
{
background-color: #FFFFF0;
color: white;
font-size: 14px;
font-weight:bold;
font-color: red;
}
.tableBorder1
{
width:97%;
border: 1px;
background-color: #6595D6;
}
</style>
</head>
<body>
<%String inf = (String) request.getAttribute("inf");
if (inf == null) {
inf = request.getParameter("inf");
}%>
<table class="tableborder1" style="width: 75%;" align="center"
cellpadding="3" cellspacing="1">
<tbody>
<tr align="center">
<th colspan="2" height="25" width="100%">信 息 提 示:</th>
</tr>
<tr align="center">
<td class="tablebody1" colspan="2" width="100%" height="200"><%=inf%></td>
</tr>
<tr align="center">
<td><input name="back" value="返 回" onclick="history.back();"
type="button" /></td>
</tr>
</tbody>
</table>
</body></html>
文件4:web.xml(j2ee的备置文件)放在WEB-INF目录下,
内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<!--Servlet name-->
<servlet>
<servlet-name>MainCtrl</servlet-name>
<servlet-class>MainCtrl</servlet-class>
</servlet>
<!--Servlet mapping-->
<servlet-mapping>
<servlet-name>MainCtrl</servlet-name>
<url-pattern>/MainCtrl</url-pattern>
</servlet-mapping>
</web-app>
发表评论
-
Itext中文处理pdf(转)
2010-06-04 17:26 8078http://quicker.iteye.com/blog/5 ... -
JfreeChart学习总结
2008-09-10 17:35 1041JfreeChart学习总结 关键 ... -
Tomcat 5/6 utf-8 编码下完美解决(post/get)中文表单问题的过滤器
2008-05-30 00:40 68601.过滤器 (包含get与post方式)SetCharacte ... -
:Java的AJAX请求中文编码方法
2008-05-29 21:41 3243这里的方案是页面(page)是基于GBK(gb2312) 的编 ... -
Tomcat 5/6 GBK 编码下完美解决中文表单问题的过滤器
2008-05-29 21:40 1818常 见的 Tomcat 5 表单编码提交后乱码的 ... -
对象的初始化
2008-05-27 09:39 1099调用构造器的具体处理步骤: 1.所有数据域被初始化为默认值(0 ... -
简单的FTP客户端 sun.net.ftp.FtpClient
2008-01-04 23:15 3111某些数据交换,我们需要通过ftp来完成。sun.net.ftp ... -
sun.net.ftp.FtpClient的函数说明
2008-01-04 23:14 1327sun.net.ftp.FtpClient., ... -
用smartUpload传文件的同时,传递参数的注意事项
2008-01-04 23:12 2104用smartUpload传文件的同时,传递参数时,在获取参数时 ... -
jsp下载文件的问题
2008-01-04 23:10 1329程序如下: <%@page language ... -
怎样用JspSmartUpload实现文件上传攻略
2008-01-04 23:08 2386㈠ 表单要求 对于上传文件的FORM表单,有两个 ... -
用jspsmartupload下载文件
2008-01-04 23:06 8297一般无论网站还是其他系统都会用到文件的上传和下载, ... -
从追MM谈Java的23种设计模式
2008-01-04 23:05 890设计模式做为程序员的& ... -
java操作Excel、PDF文件
2008-01-04 23:03 1617下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是 ... -
Java中的内部类
2008-01-04 22:59 1031从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论 ... -
用servlet filter 解决编码问题的一个小例子
2008-01-04 22:58 1636当在做程序的是你也许会遇到一些很让你恼火的乱码问题,就是在你在 ... -
JSTL标签的使用
2008-01-04 22:57 36971. <c:out>标签的用法 ... -
用java实现简单的email正则表达式判断
2008-01-04 22:56 1549import java.sql.*; import java. ... -
eclipse内存不足解决方法
2008-01-04 22:55 2092问题解决]用ECLIPSE3.2+MYECLIPS ... -
如何编写一个简单的Servlet
2008-01-04 22:54 19401.写一个Servlet的java源文件2.编译Servlet ...
相关推荐
以下将详细介绍如何使用Java实现FTP文件上传和下载的步骤,以及涉及到的关键知识点。 首先,Java通过`java.net`和`javax.net`包提供了FTP功能,但这些原生API并不易用。因此,大多数开发人员会使用第三方库如Apache...
Java 实现 FTP 自动上传文件是一项常见的任务,尤其在自动化部署、数据同步或者日志传输等场景中。本文将深入探讨如何使用Java编程语言来构建一个FTP文件上传系统,同时结合Log4j日志框架和命令行信息的处理。 首先...
首先,我们来看标题和描述中的关键词"java实现的ftp文件上传",这表明我们要讨论的是使用Java编程语言来实现在FTP服务器上上传文件的过程。Java提供了一个名为`java.net.Socket`的基本网络连接类,但直接使用它来...
在`TestFtpUpload`文件中,可以编写单元测试或集成测试来验证FTP上传和下载功能。例如,你可以创建一个测试类`FtpOperationsTest`,包含如下方法: ```java import org.junit.jupiter.api.Test; import org.apache....
Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...
Java 实现 FTP 批量大文件上传下载 本文介绍了如何使用 Java 实现 FTP 服务器上的大批量文件的上传和下载,处理大文件的上传和下载。通过 Java 现有的可用的库来编写 FTP 客户端代码,并开发成 Applet 控件,做成...
以上就是关于"java实现ftp上传jar包"的相关知识点,涵盖了FTP协议、相关库的使用、JAR文件的处理以及基本的Java FTP操作。在实际项目中,你可能还需要考虑其他因素,如连接超时、重试策略、文件权限管理等。
本教程将详细介绍如何使用Java实现文件上传到FTP服务器,这适用于初学者熟悉FTP客户端编程的基础概念。 首先,我们要了解FTP的基本工作原理。FTP允许客户端连接到服务器,发送文件,接收文件,或者列出服务器上的...
Java实现FTP文件传输涉及到多个关键知识点,包括FTP协议的基本概念、Java中的FTP客户端库、以及如何使用Java进行文件操作。以下是对这些知识点的详细说明: 1. FTP协议:FTP(File Transfer Protocol)是一种用于在...
PutButton部分为向FTP服务器上传一个文件。 别忘了在程序中还要引入两个库文件(import sun.net.*,import sun.net.ftp.*)。 以下是这三部分的JAVA源程序: (1)显示FTP服务器上的文件 void ftpList_actionPerformed...
在JAVA中实现FTP协议文件上传,我们需要使用Java的`java.net`和`org.apache.commons.net.ftp`这两个库。`java.net`是Java自带的网络编程库,而`org.apache.commons.net.ftp`则是Apache Commons Net提供的FTP客户端库...
综上所述,这个资源包提供了一个完整的Java FTP客户端实现,包括连接服务器、上传和下载文件的功能,并且包含了日志处理和测试支持。开发者可以借此学习和理解如何在Java中实现FTP操作,也可以直接在自己的项目中...
### JAVA获取FTP文件列表知识点详解 #### 一、概述 ...通过这些接口,开发者可以轻松地实现文件的上传、下载、删除以及目录的管理等功能。此外,还需要注意错误处理和异常捕获,以确保程序的健壮性和可靠性。
本篇文章将深入探讨如何使用Java实现FTP文件传输,包括客户端和服务端的构建。 首先,我们需要理解FTP的基本工作原理。FTP基于TCP/IP协议,通过建立两个独立的连接来完成文件传输:控制连接用于发送命令和接收响应...
用java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...
Java,FTP,用Java实现FTP批量大文件上传下载
通过Java实现FTP批量下载文件以及解压的功能,可以极大地提高工作效率,特别是在处理大量数据时。以下是一份详细的步骤介绍: 首先,我们需要引入Java的FTP客户端库,如Apache Commons Net库。这个库提供了丰富的...