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

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

既然使用了java,实现这种功能就与OS无关了,否则叫什么跨平台。其实用浏览器下载服务器端文件比较容易:
首先,要让用户能找到并选择文件(jsp里实现,部分代码)
String realPath=request.getSession().getServletContext().getRealPath("")+"/documents";//项目根目录下文件路径
File fileDir=new File(realPath);
String[] fileList=fileDir.list();//返回目录下文件名称数组
for(int i=0;i<fileList.length;i++){
//这里遍历出来要显示的文件名,加到td里,后面再加上个“下载”按钮
//使用隐藏input记录文件名和路径fileName,filePath

其次,提交下载请求并下载
使用form提交用户选择的文件名,Action中部分代码:
String fileName=req.getParameter("fileName");//HttpServletRequest req
String filePath=req.getParameter("filePath");
try {
FileDownload.Download(filePath+"/"+fileName, "attachment", res);
} catch (Exception e) {
e.printStackTrace();
}
下面是 FileDownload类:
package com.aerolink.aocs.util.fileUtil;

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

/**
* <p>
* Title: FileDownload类
* </p>
* <p>
* Description: 实现文件下载功能
* </p>
* <p>
* 将文件名,HttpServletRequest,HttpServletRespons传给静态方法Download即可
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
* Company: 北京天航信达信息技术有限公司
* </p>
*
* @author 陶源
* @version 2.0
*/
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 = f.length();
byte[] b = new byte[1024];

// 设置文件输出流
FileInputStream fin = new FileInputStream(f);
DataInputStream in = new DataInputStream(fin);

int pos = fileName.lastIndexOf(java.io.File.separator);
String fn = new String(fileName.substring(pos + 1).getBytes("gb2312"),
"ISO8859-1");

// 设置相应头信息,让下载的文件显示保存信息
res.setContentType(fileContentType);
res.setHeader("Content-Disposition", fileDownloadType + ";filename=\""
+ fn + "\"");
// 确定长度
String filesize = Long.toString(filelength);
// 设置输出文件的长度
res.setHeader("Content-Length", filesize);
// 取得输出流
ServletOutputStream servletOut = res.getOutputStream();
// 发送文件数据,每次1024字节,最后一次单独计算
while (totalsize < filelength) {
totalsize += 1024;
if (totalsize > filelength) {
// 最后一次传送的字节数
byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];
// 读入字节数组
in.readFully(leftpart);
// 写入输出流
servletOut.write(leftpart);
} else {
// 读入1024个字节到字节数组 b
in.readFully(b);
// 写和输出流
servletOut.write(b);
}
}
servletOut.close();
}

/**
* @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 (fileName.endsWith(".doc")) {
fileContentType = "application/msword";
} else if (fileName.endsWith(".pdf")) {
fileContentType = "application/pdf";
} else if (fileName.endsWith(".xls")) {
fileContentType = "application/vnd-ms-excel";
} else if (fileName.endsWith(".txt")) {
fileContentType = "text/plain";
} else {
fileContentType = "application/octet-stream";
}

long totalsize = 0;
// 取得要传输的文件,实际应用是可以将文件路径以参数的形式传入
File f = new File(fileName);
// 取文件长度
long filelength = f.length();
byte[] b = new byte[1024];

// 设置文件输出流
FileInputStream fin = new FileInputStream(f);
DataInputStream in = new DataInputStream(fin);

int pos = fileName.lastIndexOf(java.io.File.separator);
String fn = new String(fileName.substring(pos + 1).getBytes("gb2312"),
"ISO8859-1");

// 设置相应头信息,让下载的文件显示保存信息
res.setContentType(fileContentType);
res.setHeader("Content-Disposition", fileDownloadType + ";filename=\""
+ fn + "\"");
// 确定长度
String filesize = Long.toString(filelength);
// 设置输出文件的长度
res.setHeader("Content-Length", filesize);
// 取得输出流
ServletOutputStream servletOut = res.getOutputStream();
// 发送文件数据,每次1024字节,最后一次单独计算
while (totalsize < filelength) {
totalsize += 1024;
if (totalsize > filelength) {
// 最后一次传送的字节数
byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];
// 读入字节数组
in.readFully(leftpart);
// 写入输出流
servletOut.write(leftpart);
} else {
// 读入1024个字节到字节数组 b
in.readFully(b);
// 写和输出流
servletOut.write(b);
}
}
servletOut.close();
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-25
<a href=文件路径> file</a>
第2个回答  2016-05-25
Linux服务器上部署个FTP。追问

类似项目根目录下有个文件

我要通过访问浏览器的方式下载它

和你电脑访问百度下载东西一样的,怎么http访问?

追答

浏览器的话用FTP开头,不是很方便。最好用个FTP客户端访问。

追问

多个人访问都装那不累死

追答

需要密码吗?不需要密码的话还是不用客户端方便。

追问

就和你在百度下载东西一样

我想做成这种

你百度下载东西还用ftp啊

追答

那http呗。服务端就一个Apache就行了。客户端用浏览器

第3个回答  2016-05-25
ftp> get [remote-file] [local-file]

linux服务器上部署java项目,本地windos通过浏览器访问项目怎么下载项 ...
首先,要让用户能找到并选择文件(jsp里实现,部分代码)String realPath=request.getSession().getServletContext().getRealPath("")+"\/documents";\/\/项目根目录下文件路径 File fileDir=new File(realPath);String[] fileList=fileDir.list();\/\/返回目录下文件名称数组 for(int i=0;i<fileList.lengt...

将Java项目部署到Linux服务器
将Java项目打成war包,并通过Xftp或命令行上传至服务器的webapps目录下。Tomcat会自动解压war包,项目即可通过浏览器访问。部署过程中可能遇到的常见问题包括端口访问错误和HTTP 404状态码。端口访问问题可通过开放云服务器的相应端口解决。HTTP 404状态码可能因项目路径配置错误导致,需确保路径正确。数据库部...

如何使用浏览器远程访问linux服务器文件夹
一般是通过以下几种方式:1、设置FTP服务器2、NFS服务器3、SAMBA服务器FTP和NFS都比较简单,下面介绍一下SAMBA的配置方法:Linux系统默认已经安装了Samba,但是没有安装Samba服务:1,先查看安装情况:rpm -qa|grep samba根据系统的安装情况选择下载或者通过光驱安装所缺的rpm包。我的安装情况是:使用命令...

vue项目本地运行和打包放到nginx中不一致
4、将dist文件夹放在本地的nginx下的html文件夹下,在nginx的配置文件中加入虚拟服务器节点信息,在本机上访问,各主流浏览器(chrome,firefox,QQ,360,搜狗)的访问效果和项目在开发模式下运行(npmrundev)是相同的。5、将dist文件夹压缩(7-Zip打包成.tar文件),通过rz-be上传到Linux服务器,放...

...部署在Linux系统中的项目验证码能显示,Windows里不可以啊?_百度知 ...
首先要确定你的验证码请求路径对不对,经常有人把开发地址localhost打包部署到服务器上,这样相当于windows浏览器去请求localhost,浏览器本机地址当然是获取不到验证码的。也可能会出现浏览器跨域等问题。总之,网页开发的时候要会使用浏览器的“检查”功能,对于开发者而言,建议使用Chrome内核的浏览器进行...

java项目部署在windows上能显示的东西在linux就不能显示
可能是图片路径问题,或者是图片命名问题

怎样打开java文件
1、Java开发工具 用户可以使用Java开发工具,如Eclipse、IntelliJ IDEA或NetBeans等,打开Jar文件。在这些开发工具中,用户可以导入Jar文件并查看其中的内容,包括源代码、类文件和资源文件。2、压缩工具 常见的压缩工具,如WinRAR、7-Zip或WinZip,可以用于打开和浏览Jar文件。用户可以使用这些工具打开Jar文件...

几种快速下载 VPS 文件的方法
首先拉取程序并自动安装至用户目录。创建数据库并配置后,通过命令启动程序。浏览器访问IP+端口地址,登录后即可查看文件目录。程序运行灵活,可自定义目录展示文件。数据库配置保存后,下次使用只需拖拽程序文件及数据库文件即可。以上三种方法各具特色,简易HTTP服务器使用简单但下载效率受限;CuteHttp...

java怎么下载安装?
第一种方法:(自动配置)你可以直接下载MyEclipse6.0或者以上版本(6.0以下的据说不行)来用,这个不用安装环境(自动设置了环境变量)。 直接安装就可以使用了,希望对你有用。第二种方法(手动配置):windowsxp下配置JDK环境变量:1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\\java\\jdk1.5.0_...

浏览器访问linux服务器上的中文文件报404
浏览器访问linux服务器上的中文文件报404 Tomcat的问题很奇怪,通过网站编辑工具提交的图片,到了服务器上也会变成“??”,原来网站里大量的图片都无法显示出来。最后在对TOMCAT的日志跟踪是否发现,该日志输出的汉字也是“??”,突然想起来是否是系统的字符编码没设置好。就查看下 vi \/etc\/sysconfig\/...

相似回答