- 浏览: 10914 次
- 性别:
- 来自: 广州
最新评论
在一般的web应用中,文件上传可以分为两类(ftp上传和http上传)。其中http上传是在页面的form表单中加入<input type=“file“ name=“file“>类型的接口,当表单被提交时,file中所指的文件就会被写入request对象中。那么在服务器端,用户只要根据 rfc1867协议解析request中的数据流就可以得到文件,但是这样上传的速度很慢了,并且对文件的大小又要求。相比之下,ftp上传就很优越了。他是ftp客户端直接与ftp服务器进行交互,将文件创传到ftp服务器。当然,ftp客户端已经被实现。下面我们就应用第三方ftp客户端实现ftp上传。
首先,从www.enterprisedt.com下载ftp客户端。整个应用公有五个类组成Upload.java,FileUpload.java,DirectoryUpload.java,Directory.java,UploadException.java.希望大家改进。
/*
* @(#)Upload.java 1.0 04/11/17
* 实现上传前的初始化
*/
package com.head.upload;
//调用第三方ftp客户端,可在www.enterprisedt.com下载
import com.enterprisedt.net.ftp.*;
import java.io.*;
public class Upload {
static FTPClient ftpClient;
static String path;
//ftp服务器的ip地址,登陆用户和密码
String remoteAddress="127.0.0.1",userName="xie",password="xie";
Upload(){}
Upload(String path){
this.path = path;
}
public boolean config(String fileName) throws UploadException {
//从配置文件中读取远端地址,用户名和密码(没实现)
return false;
}
public void init() throws UploadException {
try{
ftpClient = new FTPClient(this.remoteAddress);
ftpClient.login(this.userName,this.password);
ftpClient.setConnectMode(FTPConnectMode.PASV);
ftpClient.setType(FTPTransferType.BINARY);
}catch(Exception e)
{
throw new UploadException(e.toString(),"Upload.init()");
}
}
public boolean upload() throws UploadException {
File file = null;
boolean flag = false;
try{
init();
file = new File(path);
if(file.isFile() && new FileUpload().uploadFile())
flag = true;
else if(file.isDirectory() && new DirectoryUpload().uploadFile(path))
flag = true;
}catch(Exception e)
{
throw new UploadException(e.toString(),"Upload.upload()");
}
finally{
clear(ftpClient);
}
return flag;
}
boolean clear(FTPClient ftpClient) throws UploadException {
try{
ftpClient.quit();
return true;
}catch(Exception e)
{
throw new UploadException(e.toString(),"Upload.clear(ftpClient)");
}
}
}
}
/*
* @(#)FileUpload.java 1.0 04/11/17
*
* 上传单个文件
*/
package com.head.upload;
import com.enterprisedt.net.ftp.*;
import java.io.*;
public class FileUpload extends Upload {
FileUpload(){}
public boolean uploadFile() throws UploadException{
//the name of file will be changed to avoid iteration
String fileName = path.substring(path.lastIndexOf("\\")+1);
try{
ftpClient.put(path,fileName);
return true;
}catch(Exception e){
throw new UploadException(e.toString(),"FileUpload.uploadFile()");
}
}
public boolean uploadFile(String name) throws UploadException{
//the name of file will be changed to avoid iteration
String fileName = name.substring(name.lastIndexOf("\\")+1);
try{
ftpClient.put(name,fileName);
return true;
}catch(Exception e){
throw new UploadException(e.toString(),"FileUpload.uploadFile(name)");
}
}
}
首先,从www.enterprisedt.com下载ftp客户端。整个应用公有五个类组成Upload.java,FileUpload.java,DirectoryUpload.java,Directory.java,UploadException.java.希望大家改进。
/*
* @(#)Upload.java 1.0 04/11/17
* 实现上传前的初始化
*/
package com.head.upload;
//调用第三方ftp客户端,可在www.enterprisedt.com下载
import com.enterprisedt.net.ftp.*;
import java.io.*;
public class Upload {
static FTPClient ftpClient;
static String path;
//ftp服务器的ip地址,登陆用户和密码
String remoteAddress="127.0.0.1",userName="xie",password="xie";
Upload(){}
Upload(String path){
this.path = path;
}
public boolean config(String fileName) throws UploadException {
//从配置文件中读取远端地址,用户名和密码(没实现)
return false;
}
public void init() throws UploadException {
try{
ftpClient = new FTPClient(this.remoteAddress);
ftpClient.login(this.userName,this.password);
ftpClient.setConnectMode(FTPConnectMode.PASV);
ftpClient.setType(FTPTransferType.BINARY);
}catch(Exception e)
{
throw new UploadException(e.toString(),"Upload.init()");
}
}
public boolean upload() throws UploadException {
File file = null;
boolean flag = false;
try{
init();
file = new File(path);
if(file.isFile() && new FileUpload().uploadFile())
flag = true;
else if(file.isDirectory() && new DirectoryUpload().uploadFile(path))
flag = true;
}catch(Exception e)
{
throw new UploadException(e.toString(),"Upload.upload()");
}
finally{
clear(ftpClient);
}
return flag;
}
boolean clear(FTPClient ftpClient) throws UploadException {
try{
ftpClient.quit();
return true;
}catch(Exception e)
{
throw new UploadException(e.toString(),"Upload.clear(ftpClient)");
}
}
}
}
/*
* @(#)FileUpload.java 1.0 04/11/17
*
* 上传单个文件
*/
package com.head.upload;
import com.enterprisedt.net.ftp.*;
import java.io.*;
public class FileUpload extends Upload {
FileUpload(){}
public boolean uploadFile() throws UploadException{
//the name of file will be changed to avoid iteration
String fileName = path.substring(path.lastIndexOf("\\")+1);
try{
ftpClient.put(path,fileName);
return true;
}catch(Exception e){
throw new UploadException(e.toString(),"FileUpload.uploadFile()");
}
}
public boolean uploadFile(String name) throws UploadException{
//the name of file will be changed to avoid iteration
String fileName = name.substring(name.lastIndexOf("\\")+1);
try{
ftpClient.put(name,fileName);
return true;
}catch(Exception e){
throw new UploadException(e.toString(),"FileUpload.uploadFile(name)");
}
}
}
发表评论
-
求一份fm收音机源码
2011-09-22 14:51 1228本人想做一个FM收音机,但是毫无思路,求高人给一份fm收音机源 ... -
出现一个异常无法解决
2011-04-21 11:19 840com.mysql.jdbc.exceptions.jdbc4 ... -
关于hibernate取值问题,跪求高手帮帮忙
2010-10-19 15:33 1190异常:org.hibernate.exceptio ... -
http上传下载(3)
2010-05-02 23:39 802接类MultipartRequest.java文件尾部 pu ... -
http上传下载(2)
2010-05-02 23:37 841package com.upload.http; import ... -
http上传下载(1)
2010-05-02 23:35 941PubDun package com.upload.htt ... -
关于java的http协议上传
2010-05-02 23:07 755http://blog.sina.com.cn/s/blog_ ... -
ftp上传和下载
2010-05-01 13:05 776Java代码 1.package com.northking ... -
采用HTTP协议上传文件实现(java)(转载)
2010-04-29 23:25 1174通过ServletRequest类的getInputStrea ... -
用Java 开发 WebService Axis简单实例
2010-04-29 22:48 785在开发之前, 先了解一下AXIS,axis目前出现的2版本以其 ... -
webservice之axis介绍
2010-04-29 22:45 807webservice之axis介绍1 Axis全称Apache ...
相关推荐
Labview FTP上传文件是利用Labview(Laboratory Virtual Instrument Engineering Workbench)这一强大的图形化编程环境,通过FTP(File Transfer Protocol)协议实现文件的远程传输。FTP是一种标准网络协议,用于在...
在给定的代码示例中,我们详细探讨了如何使用Java编程语言实现FTP上传文件的功能。 ### 一、FTP上传文件的基本概念 FTP协议由两部分组成:控制连接和数据连接。控制连接用于发送命令和接收响应,而数据连接则用于...
使用`STOR`命令上传文件。首先,设置本地文件路径和FTP服务器上的目标路径,然后发送`STOR`命令: ```vb Dim localFilePath As String = "C:\local\file.txt" Dim remoteFilePath As String = "/public_...
FTP上传文件的核心在于`curl_easy_setopt()`函数,它可以设置各种选项来定制FTP请求。首先,设置URL为FTP服务器的地址: ```cpp curl_easy_setopt(curl, CURLOPT_URL, "ftp://ftp.example.com/path/to/file"); ``` ...
### PHP处理FTP上传文件知识点详解 #### 一、利用PHP内置文件函数实现文件上传 **1.1 上传文件表单设计(upload.html)** 在实现文件上传功能时,首先需要设计一个表单用于接收用户的文件输入。在这个例子中,`...
以下是实现FTP上传文件的基本步骤: 1. **初始化libcurl**:首先,我们需要调用`curl_global_init()`函数对libcurl进行全局初始化。 2. **创建会话句柄**:使用`curl_easy_init()`创建一个CURL对象,这将作为我们...
以下是一个简单的FTP上传文件的步骤: 1. **创建FtpWebRequest对象**:首先,我们需要创建一个`FtpWebRequest`实例,设置其`Method`属性为`WebRequestMethods.Ftp.UploadFile`,并指定FTP服务器的URL和文件路径。 ...
下面是一个简单的FTP连接和上传文件的步骤: 1. **建立FTP连接**:创建一个`FtpWebRequest`对象,设置其`Method`属性为`WebMethod.UploadFile`,并指定FTP服务器的URL、用户名和密码。 ```csharp FtpWebRequest ...
在IT行业中,定时FTP上传文件是一项常见的自动化任务,尤其对于监控、数据分析或者备份等场景尤为重要。这个任务涉及到几个关键知识点,下面将详细讲解。 首先,我们要理解“定时”这一概念。在计算机领域,定时...
3. **文件上传**:使用`FTPClient`的`storeFile()`方法上传文件,并在此过程中计算上传速度和进度。首先,打开本地文件: ```java FileInputStream fis = new FileInputStream(localFilePath); ``` 然后,使用`...
java使用FTP上传文件,非常实用 包括创建ftp链接,上传
可以实现文件上传功能,并能检索到FTP目前的目录
标题提到的“3dMax脚本开发的FTP上传文件工具”就是通过Maxscript编写的一个实用工具,它使得3DMax用户能够方便地将工作成果上传到FTP服务器。 FTP(File Transfer Protocol)是一种网络协议,用于在网络上进行文件...
c# 实现文件FTP上传至服务器 WebClient上传文件至服务器(不带进度条) 要上传的文件(全路径格式) <param name="strUrlDirPath">Web服务器文件夹路径 <returns>True/False是否上传成功</returns>
Spring Boot 中使用 FTP 上传文件到远程服务器的流程 在本文中,我们将介绍如何使用 Spring Boot 实现 FTP 上传文件到远程服务器的流程。这个流程包括如何使用 JWT 登录认证及鉴权的流程,以及如何使用 Spring ...
indows的cmd里用ftp命令可以上传文件到ftp服务器,呀,有点惊讶啊此时用put命令,就会把本地ceshi.jpg图片文件推上 使用put命令时所在路径,你可以在使用put命令前用下pwd查看下路径。
现在让我们深入探讨如何在C#中实现FTP上传文件和文件夹。 首先,要进行FTP上传,我们需要准备以下基本要素: 1. FTP服务器地址:这是你的文件将被上传到的位置,通常以`ftp://`开头。 2. 用户名和密码:用于验证...
在这个主题中,我们将深入探讨FTP上传文件的相关知识点,以及如何利用提供的代码实现FTP上传、下载和删除功能。 1. FTP基本概念: FTP是Internet上的标准服务之一,它允许用户从一台计算机(客户端)将文件传输到另...
- **上传文件**:调用`FTPClient.storeFile()`或`FTPClient.uploadFile()`方法上传文件。 - **断开连接**:最后,记得调用`FTPClient.logout()`和`FTPClient.disconnect()`断开连接并释放资源。 在开发过程中,还...
一个简单的命令行实现ftp上传文件或者文件夹 到ftp多个目录下的工具 平时经常会要上传一个文件或者将一个文件夹下面的文件到ftp上面多个目录下,每次都要花费很多时间切换目录,很是麻烦,而且容易出错或者遗漏上传...