linux服务器上部署java项目,本地windos通过浏览器访问项目怎么下载项目目录下的文件到本

linux服务器上部署java项目,本地windos通过浏览器访问项目怎么下载项目目录下的文件到本,第1张

既然使用了java,实现这种功能就与OS无关了,否则叫什么跨平台。其实用浏览器下载服务器端文件比较容易:

首先,要让用户能找到并选择文件(jsp里实现,部分代码)

String realPath=requestgetSession()getServletContext()getRealPath("")+"/documents";//项目根目录下文件路径

File fileDir=new File(realPath);

String[] fileList=fileDirlist();//返回目录下文件名称数组

for(int i=0;i<fileListlength;i++){

//这里遍历出来要显示的文件名,加到td里,后面再加上个“下载”按钮

//使用隐藏input记录文件名和路径fileName,filePath

其次,提交下载请求并下载

使用form提交用户选择的文件名,Action中部分代码:

String fileName=reqgetParameter("fileName");//HttpServletRequest req

String filePath=reqgetParameter("filePath");

try {

FileDownloadDownload(filePath+"/"+fileName, "attachment", res);

} catch (Exception e) {

eprintStackTrace();

}

下面是 FileDownload类:

package comaerolinkaocsutilfileUtil;

import javaioDataInputStream;

import javaioFile;

import javaioFileInputStream;

import javaioFileNotFoundException;

import javaioIOException;

import javaxservletServletOutputStream;

import javaxservlethttpHttpServletResponse;

/

<p>

Title: FileDownload类

</p>

<p>

Description: 实现文件下载功能

</p>

<p>

将文件名,HttpServletRequest,HttpServletRespons传给静态方法Download即可

</p>

<p>

Copyright: Copyright (c) 2005

</p>

<p>

Company: 北京天航信达信息技术有限公司

</p>

@author 陶源

@version 20

/

public class FileDownload {

/

@param fileName

@param res

@throws FileNotFoundException

@throws IOException

/

public static void Download(String fileName,

HttpServletResponse res)

throws FileNotFoundException, IOException {

String fileContentType = "application/octet-stream";

String fileDownloadType = "attachment";

long totalsize = 0;

// 取得要传输的文件,实际应用是可以将文件路径以参数的形式传入

File f = new File(fileName);

// 取文件长度

long filelength = flength();

byte[] b = new byte[1024];

// 设置文件输出流

FileInputStream fin = new FileInputStream(f);

DataInputStream in = new DataInputStream(fin);

int pos = fileNamelastIndexOf(javaioFileseparator);

String fn = new String(fileNamesubstring(pos + 1)getBytes("gb2312"),

"ISO8859-1");

// 设置相应头信息,让下载的文件显示保存信息

ressetContentType(fileContentType);

ressetHeader("Content-Disposition", fileDownloadType + ";filename=\""

+ fn + "\"");

// 确定长度

String filesize = LongtoString(filelength);

// 设置输出文件的长度

ressetHeader("Content-Length", filesize);

// 取得输出流

ServletOutputStream servletOut = resgetOutputStream();

// 发送文件数据,每次1024字节,最后一次单独计算

while (totalsize < filelength) {

totalsize += 1024;

if (totalsize > filelength) {

// 最后一次传送的字节数

byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];

// 读入字节数组

inreadFully(leftpart);

// 写入输出流

servletOutwrite(leftpart);

} else {

// 读入1024个字节到字节数组 b

inreadFully(b);

// 写和输出流

servletOutwrite(b);

}

}

servletOutclose();

}

/

@param fileName

@param fileDownloadType

@param res

@throws FileNotFoundException

@throws IOException

/

public static void Download(String fileName, String fileDownloadType,

HttpServletResponse res)

throws FileNotFoundException, IOException {

String fileContentType = null;

if (fileNameendsWith("doc")) {

fileContentType = "application/msword";

} else if (fileNameendsWith("pdf")) {

fileContentType = "application/pdf";

} else if (fileNameendsWith("xls")) {

fileContentType = "application/vnd-ms-excel";

} else if (fileNameendsWith("txt")) {

fileContentType = "text/plain";

} else {

fileContentType = "application/octet-stream";

}

long totalsize = 0;

// 取得要传输的文件,实际应用是可以将文件路径以参数的形式传入

File f = new File(fileName);

// 取文件长度

long filelength = flength();

byte[] b = new byte[1024];

// 设置文件输出流

FileInputStream fin = new FileInputStream(f);

DataInputStream in = new DataInputStream(fin);

int pos = fileNamelastIndexOf(javaioFileseparator);

String fn = new String(fileNamesubstring(pos + 1)getBytes("gb2312"),

"ISO8859-1");

// 设置相应头信息,让下载的文件显示保存信息

ressetContentType(fileContentType);

ressetHeader("Content-Disposition", fileDownloadType + ";filename=\""

+ fn + "\"");

// 确定长度

String filesize = LongtoString(filelength);

// 设置输出文件的长度

ressetHeader("Content-Length", filesize);

// 取得输出流

ServletOutputStream servletOut = resgetOutputStream();

// 发送文件数据,每次1024字节,最后一次单独计算

while (totalsize < filelength) {

totalsize += 1024;

if (totalsize > filelength) {

// 最后一次传送的字节数

byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];

// 读入字节数组

inreadFully(leftpart);

// 写入输出流

servletOutwrite(leftpart);

} else {

// 读入1024个字节到字节数组 b

inreadFully(b);

// 写和输出流

servletOutwrite(b);

}

}

servletOutclose();

}

}

linux与linux之间传送文件:

scp file username@hostIP:文件地址 例:

scp abctxt endall@IP:/home/endall/abctxt

windows与linux之间传送文件:

笔者用putty的内置PSCP。其它如 SSH Secure File Transfer Client

先在WIN的DOS下,PUTTY目录下及PSCP文件所在目录。

pscp file username@hostIP:文件地址

例:pscp d:abctxt endall@IP:/home/endall/abctxt

pscp endall@IP:/home/endall/abctxt d:abc

linux到windows类似

windows如何用 putty的 psftp 从 linux上传与下载

windows 下运行 psftpexe ,登录后改变在linux下的目录:

cd /usr/

改变在windows下上传和下载的目录:

lcd d:/

这个目录在 psftp 中不能列出来,我觉得这点不太好,如果不改变的话就是默认putty的安装目录,默认下载到这儿,上传的文件也是要在这个文件夹里面

比如在 d:盘有一个 5rmvb

上传文件到linux: psftp > put 5rmvb

这个命令会把 d:\5rmvb 上传到 /usr/5rmvb

从linux下载文件: psftp > get 4rmvb

这个命令会把 /usr/4rmvb 下载到 d:\4rmvb

用 这个命令 吧

scp 可以在 2个 linux 主机间复制文件;

命令基本格式:

scp [可选参数] file_source file_target

======

从 本地 复制到 远程

======

复制文件:

命令格式:

scp local_file remote_username@remote_ip:remote_folder

或者

scp local_file remote_username@remote_ip:remote_file

或者

scp local_file remote_ip:remote_folder

或者

scp local_file remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

例子:

scp /home/space/music/1mp3 root@wwwcumteducn:/home/root/others/music

scp /home/space/music/1mp3 root@wwwcumteducn:/home/root/others/music/001mp3

scp /home/space/music/1mp3 wwwcumteducn:/home/root/others/music

scp /home/space/music/1mp3 wwwcumteducn:/home/root/others/music/001mp3

linux的文件拷贝到windows的具体操作步骤如下:

1、百度搜索filezilla官网,ftp客户端和ftp服务端软件,选用客户端即可。

2、进入filezilla官网,下载64位安装版,选择系统32位。

3、安装完成,windows开始菜单,找到filezilla软件,点击即可启动程序。

4、输入linux主机的ip地址,用户名,密码,以及22端口,点击连接即可登陆。

5、在linux相应的目录,找到文件或目录,文件右击下载即可,选择文件存放的目录。

6、linux上的文件即可拷贝到windows。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux服务器上部署java项目,本地windos通过浏览器访问项目怎么下载项目目录下的文件到本

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情