怎么用JSP把本地的文件夹上传到FTP服务器?

作者&投稿:路是 (若有异议请与网页底部的电邮联系)
怎么把本地的文件上传到liunx服务器~

SecureCRT与SshClient不同的就是,SecureCRT没有图形化的文件传输工具,不过也不影响,用命令来实现的话,其实会方便快捷很多。
第一种方式:
上传文件只需在shell终端仿真器中输入命令“rz”,即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器当前路径下。
下载文件只需在shell终端仿真器中输入命令“sz 文件名”,即可利用Zmodem将文件下载到本地某目录下。
通过“File Transfer”可以修改下载到本地的默认路径。设置默认目录:options-->session options-->file transfer。
第二种方式:用sftp
securecrt 按下ALT+P就开启新的会话 进行ftp操作。
输入:help命令,显示该FTP提供所有的命令
pwd: 查询linux主机所在目录(也就是远程主机目录)
lpwd: 查询本地目录(一般指windows上传文件的目录:我们可以通过查看”选项“下拉框中的”会话选项“,如图二:我们知道本地上传目录为:D:/我的文档)
ls: 查询连接到当前linux主机所在目录有哪些文件
lls: 查询当前本地上传目录有哪些文件
lcd: 改变本地上传目录的路径
cd: 改变远程上传目录
get: 将远程目录中文件下载到本地目录
put: 将本地目录中文件上传到远程主机(linux)
quit: 断开FTP连接

文件从本地到服务器的功能,其实是为了解决目前浏览器不支持获取本地文件全路径。不得已而想到上传到服务器的固定目录,从而方便项目获取文件,进而使程序支持EXCEL批量导入数据。
java中文件上传到服务器的指定路径的代码:
在前台界面中输入:

请选文件:



action中获取前台传来数据并保存
/**
* excel 导入文件
* @return
* @throws IOException
*/
@RequestMapping("/usermanager/excelImport.do")
public String excelImport(
String filePath,
MultipartFile excelFile,HttpServletRequest request) throws IOException{
log.info(">>>>>","usermanager","excelImport" );
if (excelFile != null){
String filename=excelFile.getOriginalFilename();
String a=request.getRealPath("u/cms/www/201509");
SaveFileFromInputStream(excelFile.getInputStream(),request.getRealPath("u/cms/www/201509"),filename);//保存到服务器的路径
}
log.info(">>>>>","usermanager","excelImport" );
return "";
}

/**
* 将MultipartFile转化为file并保存到服务器上的某地
*/
public void SaveFileFromInputStream(InputStream stream,String path,String savefile) throws IOException
{
FileOutputStream fs=new FileOutputStream( path + "/"+ savefile);
System.out.println("------------"+path + "/"+ savefile);
byte[] buffer =new byte[1024*1024];
int bytesum = 0;
int byteread = 0;
while ((byteread=stream.read(buffer))!=-1)
{
bytesum+=byteread;
fs.write(buffer,0,byteread);
fs.flush();
}
fs.close();
stream.close();
}

前段时间做了一个文件上传ftp功能,你参照一下

package com.ftp.upload;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class FTPUpload {
private FTPClient ftpClient = null;

private OutputStream outSteam = null;

/**
* ftp服务器地址
*/
private String hostname = "192.168.1.2";
/**
* ftp服务器端口
*/
int port = 21;
/**
* 登录名
*/
private String username = "admin";

/**
* 登录密码
*/
private String password = "admin";

/**
* 需要访问的远程目录
*/
private String remoteDir = "/home/demo";

public FTPUpload() { }

public FTPUpload(String hostname, int port, String username, String password, String remoteDir){
this.hostname = hostname;
this.port = port;
this.username = username;
this.password = password;
this.remoteDir = remoteDir;

}
/**
* 连接FTP服务器 并登录
* @param hostName FTP服务器hostname
* @param port FTP服务器端口
* @param username FTP登录账号
* @param password FTP登录密码
*/
private FTPClient connectFTPServer() {
try {
//1.创建FTPClient对象
ftpClient = new FTPClient();
//2.连接FTP服务器
// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftpClient.connect(hostname, port); //链接到ftp服务器
// System.out.println("连接到ftp服务器地址 --> ftp://" + hostName + ":" + port + " 成功..开始登录");

//3.判断连接ftp服务器是否成功
int reply = ftpClient.getReplyCode();
// System.out.println("以2开头的返回值就会为真:" + reply);
//以2开头的返回值就会为真
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
return null;
}

//4.登录FTP服务器.用户名 密码
ftpClient.login(username, password);
System.out.println("登录成功." );

return ftpClient;
} catch (Exception e) {
e.printStackTrace();
ftpClient = null;
return ftpClient;
}
}

/**
* 向FTP服务器上传文件
* @param filePathName 上传文件的全路径名称
* @return 成功返回true,否则返回false
*/
public boolean uploadFile(String filePathName) {
// 初始表示上传失败
boolean success = false;
try {
// 创建FTPClient对象
ftpClient = connectFTPServer();
//创建文件夹
boolean flag = ftpClient.makeDirectory(remoteDir);
if(flag) {
System.out.println("创建文件夹:" + remoteDir );
}

// 转到指定上传目录
boolean flag0 = ftpClient.changeWorkingDirectory(remoteDir);
// 将上传文件存储到指定目录
if(filePathName == null || filePathName.length() == 0){
return success;
}
String filename = filePathName.substring(filePathName.replace("\\", "/").lastIndexOf("/") + 1, filePathName.length());

InputStream input = new FileInputStream(new File(filePathName));

// ftpClient.setBufferSize(1024);
// ftpClient.setControlEncoding("GBK");
// ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//设置文件类型

boolean flag1 = ftpClient.storeFile(filename, input);
System.out.println("转到指定上传目录:" + flag0 + " 将上传文件存储到指定目录:" + flag1);

input.close(); // 关闭输入流
ftpClient.logout(); // 退出ftp
success = true; // 表示上传成功

} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}

/**
* 从FTP服务器指定目录下载文件 到本地目录中 OK
* @param fileName 要下载的文件名
* @param localPath 下载后保存到本地的路径
* @param showlist 下载时是否显示列表 ( true 显示 )
* @return
*/
public boolean downFile(String fileName, String localPath, boolean showlist) {
// 初始表示下载失败
boolean success = false;
if(fileName == null || fileName.length() == 0 || localPath == null || localPath.length() == 0){
return success;
}
try {
File file = new File(localPath);

if(!file.isDirectory()){
file.mkdir();
}
// 创建FTPClient对象
ftpClient = connectFTPServer();
// 转到指定下载目录
boolean flag = ftpClient.changeWorkingDirectory(remoteDir);
if(!flag) {
System.out.println("目录:" + remoteDir +"不存在!");
return success;
}
// 列出该目录下所有文件
FTPFile[] remoteFiles = ftpClient.listFiles();

// 遍历所有文件,找到指定的文件
if(showlist){
System.out.println("目录" + remoteDir + "下的文件:");
}

for (FTPFile ftpFile : remoteFiles) {
String name = ftpFile.getName();
if(showlist){
long length = ftpFile.getSize();
String readableLength = FileUtils.byteCountToDisplaySize(length);
System.out.println(name + ":\t\t" + readableLength);
}

if (name.equals(fileName)) {
// 根据绝对路径初始化文件
File localFile = new File(localPath + "/" + name);
// 输出流
OutputStream is = new FileOutputStream(localFile);
// 下载文件
ftpClient.retrieveFile(name, is);
is.close();
}
}
// 退出ftp
ftpClient.logout();
// 下载成功
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}

/**
* 显示FTP服务器指定文件夹中的文件及大小 OK
* @return
*/
private boolean showFileList() {
// 初始表示失败
boolean success = false;
try {
ftpClient = connectFTPServer();
FTPFile[] remoteFiles = null;
// 转到指定下载目录
boolean flag = ftpClient.changeWorkingDirectory(remoteDir);
if(!flag) {
System.out.println("目录:" + remoteDir +"不存在!");
return success;
} else{
remoteFiles = ftpClient.listFiles(remoteDir);
System.out.println("目录" + remoteDir + "下的文件:");
}

if(remoteFiles != null) {
for(int i=0;i < remoteFiles.length; i++){
String name = remoteFiles[i].getName();
long length = remoteFiles[i].getSize();
String readableLength = FileUtils.byteCountToDisplaySize(length);
System.out.println(name + ":\t\t" + readableLength);
}
}
// 表示成功
success = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
//使用IO包关闭流
IOUtils.closeQuietly(outSteam);
try {
ftpClient.disconnect();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
return success;
}
public static void main(String[] args) {
FTPUpload ftp = new FTPUpload();
ftp.uploadFile("c:////test////bgssp.jar");
}
}

用smartupload组件试试

ftp软件,用户名密码整错,建立连接,可以访问服务器了

dui de


jsp网页中播放本地音乐
var volv=phx.settings.volume;setInterval("if(phx.playState==3){time.innerText=phx.controls.currentPositionString+\\'|\\'+ phx.currentMedia.durationString}",1000);setInterval("if(phx.playState==3){itcn.style.width=parseInt(245*(phx.controls.currentPosition\/phx.currentMedia.duration...

在jsp页面使用java代码,获取html页面中所有script标签里面的src 路径...
public static void main(String[] args) throws Exception { Reader reader=new FileReader("d:\/NewFile.html"); String content="";\/\/每一行 \/\/写入文件 Writer writer=new FileWriter(new File("d:\/want.txt")); \/\/缓冲流封装一下,读写方便 BufferedWriter bw=new Buffere...

JSP怎么访问SQL数据库,怎么读取,要把数据库文件放在哪里
附加数据库 打开SQL Server 2000中的“企业管理器”,然后展开本地服务器,在“数据库”数据项上单击鼠标右键,在弹出的快捷菜单中选择“所有任务”\/“附加数据库”菜单项。将弹出“附加数据库”对话框,在该对话框中单击后面那个按钮,选择所要附加数据库的.mdf文件,单击“确定”按钮,即可完成数据库...

请问jsp页面如何能获取到上传文件的大小,我想通过获取的大小,判断该...
因权限和安全限制,js是不能获得本地文件大小的,除非安装控件。jsp获取上传文件大小方法如下:long size=request.getContentLength() ;在文件准备上传之前就可以得到其大小。当然了,在客户端基本上不大可能获取大文件大小的,必须是文件提交上传开始后,在服务端获取得到的,request.getContentLength() ;...

如何在javascript中读取本地的json格式文本文件
var _t = this;_t.parentNode.removeChild(_t);};_script.src = uri;document.getElementsByTagName("head").item(0).appendChild(_script);};loadScript(url,function(){console.log(json)},"utf-8")\/\/把你的文本文件换成HTML,url是html地址,json是你的json变量的变量名。jsonp格式获取。

jsp程序如何在本地测试
安装jdk 配置环境变量 java_home 为jdk的路径 安装tomcat 把jsp 页面放进tomcat安装目录webapp目录下 然后进入 tomcat 目录下的bin目录 点。exe的那东西,如果一闪而过。就在cmd里面 cd “文件夹名” 一直到bin目录 然后 startup。bat 最后在IE地址栏里输http:\\\\localhost:8080\\XX.jsp(你的jsp...

用el表达式如何在jsp中获得系统当前时间
首先el表达式,只能拿到有带get开头的方法;所有你可以先用request.setAttribute("date",new Date());然后在返回的jsp页面上用${date},就能那到服务器上的时间,如果你仅仅只想在获得本地上的时间,你只要用js就可以获得了 var date =new Date();\/\/这里的date 是你打开jsp页面的 本地时间,和服务...

Jsp页面中本地图片显示不了?
\/\/===jsp显示服务器硬盘图片示例 end=== \/ \/\/=== 三、将数据库的大字段图片还原到本地,并在网页上显示begin=== Class.forName("org.gjt.mm.mysql.Driver").newInstance();String url ="jdbc:mysql:\/\/localhost:3306\/test?user=root&password=eastsoftweb";Connection conn= DriverMa...

做jsp网页程序,能往本地写dbf文件数据么
不可以,只能写到服务器的文件系统中,然后通过网络协议下载是可以的。

怎样在本地运行jsp,没有联网的情况下!谢谢!
可以放在Local目录下访问,当然得先装IIS,还有一个办法就是先装一个虚拟机软件(可以到网上去下载),那么你的电脑就可以当作两个电脑用了,当然如果你的机子的配置高的话做三个甚至是四个都没关系,让本机和虚拟机联网(什么都不需要,只要设置一下虚拟机软件就可以)。然后做任何的网络试验就都可以...

天心区14712188064: jsp 如何实现文件上传和下载功能? -
鞠勤唯地: 上传:MyjspForm mf = (MyjspForm) form;// TODO Auto-generated method stub FormFile fname=mf.getFname(); byte [] fn = fname.getFileData(); OutputStream out = new FileOutputStream("D:\\"+fname.getFileName()); Date date = new Date(); ...

天心区14712188064: 如何用jsp将文件上传至http文件服务器 -
鞠勤唯地: 纯jsp? 用Jersey插件可以实现,ftp也可以,我贴出jersey的代码,比较简单.导入jar包即可.我这里是先从一台服务器上把MP3文件下载下来,然后写成二进制,再利用jersey发送的.发送的代码就只有两三行吧/** * 上传歌曲到服务器 * @param...

天心区14712188064: jsp如何实现文件上传与下载? -
鞠勤唯地: 如果服务器端程序使用的是struts2框架的话,我会,其他的不会.struts2:对于上传,jsp页面只需要有个file类型的表单域,如 struts2的接收请求的action中再写三个属性与这个表单域的名称对应起来,他们是,File类型的xxx,String类型的...

天心区14712188064: 如何用JSP实现文件的上传和下载,要对数据库进行什么操作? -
鞠勤唯地: 你的表单呢?他的意思等你上传完成后,你要把文件信息更新到数据库,当你在向用户展示时,只需要查询数据即可.可以再数据库建一个表,吧相应字段存起来,最重要的是存上你的图片路径和名字.

天心区14712188064: JSP用什么技术实现文件的上传,知道的大虾告诉下,谢谢!在线等 -
鞠勤唯地: 我只知道两种,1)是利用IO包里的输入输出功能,先利用READ()方法返回字节数,然后再写入到你服务器的一个指定的文件夹内,2)直接把文件上传到数据库,但这种方式好像不能上传太大的文件,因为就SQL2005的话,每个数据库最大M数是有限制的.

天心区14712188064: 在JSP页面中,知道客户端有一个文件,如何实现直接上传到服务器 -
鞠勤唯地: 上传文件的原理是 本地浏览器 拿到文件 写成流的形式 然后post到服务端.你都知道了路径,就是说不用选择.那么可以使用js来把路径放到input里面去啊,这样就可以不用再次选择文件了.

天心区14712188064: jsp中如何实现文件上传
鞠勤唯地: http://bbs.itheima.com/thread-80497-1-1.html不想重复粘贴,以通过

天心区14712188064: JSP上传文件夹问题? -
鞠勤唯地: 我感觉不是上传文件夹的问题,指定一个上传的路径,然后,在服务器端把这个路径拿到,实际生成这个指定的文件夹呗.为什么要上传文件夹呢?不太明白楼主的意思

天心区14712188064: 用jsp把文件直接上传到数据库的代码具体怎么写,谢谢了 -
鞠勤唯地: 上传都是把上传到服务器的路径保存在数据库里面就完了 然后给客户端返回一个链接

天心区14712188064: 如何利用jspsmartupload实现批量上传文件 -
鞠勤唯地: 1.进入命令行状态,将目录切换到tomcat的webapps/jspsmartupload/web-inf目录下. 2.运行jar打包命令:jar cvf jspsmartupload.jar com (也可以打开资源管理器,切换到当前目录,用winzip将com目录下的所有文件压缩成jspsmartupload.zip,然后将jspsmartupload.zip换名为jspsmartupload.jar文件即可.) 3.将jspsmartupload.jar拷贝到tomcat的shared/lib目录下.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网