文件管理 · 2022年8月12日

javaweb下载zip文件|Javaweb中的文件下载实现

『壹』 javaweb中的文件下载实现

需要在响复应头部加上一制些标示,告诉浏览器这个是文件下载。如果你用了框架比如struts,需要加如下配置<result name="success" type="stream"> <param name="contentType">application/octet-stream;charset=ISO8859-1</param> <param name="inputName">fileStream</param> <param name="contentDisposition">attachment;filename="${fileName}"</param> <param name="bufferSize">2048</param> </result>如果没有用框架,就手动在返回对象添加这些contentType

『贰』 java web 将文件打包成 .zip后 怎么自动弹出下载框提示并下载

你可以windows.open(url)url就是你的文件路径这样就可以自动弹出下载框提示并下载

『叁』 JavaWeb如何将文件下载到本地.要求不要有提示下载框的,直接点击后,就下载到某个本地盘下。

点击后转向执行的方法:先获取点击的文件路径,然后通过读取文件的IO流对象,放到缓冲流里面,然后向网络传输文件流。

『肆』 java web 工程实现文件下载功能的问题

亲,你说的啥意思啊?“怎样才能让这里的名称也可以正常显示? ”??现在有名称不正常么??你是说保存的文件名?1)http头当中确实需要指定当前返回的是文件,才能让浏览器按照文件识别,但是你说你写了setheader,就应该知道 默认文件名也是在这里写的,所以你说“不正常”就很难明白了。2)迅雷的任务栏里有没有同名文件,你是拿不到的,那不是B/S结构能处理的东西。当然你可以写一个插件来处理,不过这东西一点都不简单。举个栗子,如果你的java(也就是服务器)能够知道用户的迅雷里有什么,那么用户那儿还有啥你不知道的,岂不是登录你的网站我下了多少毛片都被你晓得了?3)你看到的有些东西是迅雷处理的,建议你把迅雷的插件关闭了,先把其他功能弄完整了再把迅雷加上。

『伍』 在java的WEB项目怎么防止浏览器直接打开下载的文件(如果回答满意,高分相送)

这个其实是在web.xml文件中配置mime下载文件类型就可以了,配置的示例:<mime-mapping> <extension>doc</extension> <mime-type>application/msword</mime-type> </mime-mapping> <mime-mapping> <extension>xls</extension> <mime-type>application/msexcel</mime-type> </mime-mapping> <mime-mapping> <extension>pdf</extension> <mime-type>application/pdf</mime-type> </mime-mapping> <mime-mapping> <extension>zip</extension> <mime-type>application/zip</mime-type> </mime-mapping> <mime-mapping> <extension>rar</extension> <mime-type>application/rar</mime-type> </mime-mapping> <mime-mapping> <extension>txt</extension> <mime-type>application/txt</mime-type> </mime-mapping> <mime-mapping> <extension>chm</extension> <mime-type>application/mshelp</mime-type> </mime-mapping> 这样就可以防止在浏览器是直接打开文件,而是弹出下载框供用户下载了。

『陆』 急!!!想实现通过java方式压缩文件并提供下载功能,在线等!!!

给你一个代码吧。 /** * 文件夹压缩。输入路径不能与输出路径相同 * zip("c:\\webserver\\test.zip","c:\\test1"); * @param zipFileName * @param inputFile * @throws Exception */ public static void zipFold(String zipFileName,String inputFilePath)throws Exception{ zip(zipFileName,new File(inputFilePath)); } private static void zip(String zipFileName,File inputFile)throws Exception{ ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName)); zipFold(out,inputFile,""); out.close(); } private static void zipFold(ZipOutputStream out,File f,String base)throws Exception{ if (f.isDirectory()) { File[] fl=f.listFiles(); base=base.length()==0?"":base+"/"; for (int i=0;i<fl.length ;i++ ) { zipFold(out,fl[i],base+fl[i].getName()); } } else { out.putNextEntry(new ZipEntry(base)); FileInputStream in=new FileInputStream(f); int b; while ((b=in.read()) != -1) out.write(b); in.close(); } }

『柒』 【Java Web】文件下载方式有哪些,以及利弊

直接下载的不太安全,用户会看见你的路径的 这个不太好 字节流的安全 而且文件位置任意放 一般都是配置在属性文件里的 愿意放拿就放哪 ,但是也有点问题,上次我就遇到过一个 日文乱码的 至今没有解决

『捌』 JavaWeb下载文件,怎么获取文件下载完毕的状态

在Javaweb中,上传下载是经常用到的功能,对于文件上传,浏览器在上传的过程中是以流的过程将文件传给服务器,一般都是使用commons-fileupload这个包实现上传功能,因为commons-fileupload依赖于commons-io这个包,所以需要下载这两个包commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar。

1、搭建环境

创建Web项目,将包导入到项目lib下

3、实现文件下载

(第一种文件下载)

注意:该代码是直接访问Servlet类的

?

04142package com.load;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;//直接使用Http://localhost:8080/Test1/download进行下载,但是这个有缺陷,如果下载文件名中有中文,就会变成乱码现象!@WebServlet("/download")public class download extends HttpServlet {private static final long serialVersionUID = 1L;public download() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/plain;charset=utf-8");response.setCharacterEncoding("utf-8");response.setHeader("Location","中文.txt");response.setHeader("Content-Disposition", "attachment; filename=" + "账号.txt");OutputStream outputStream = response.getOutputStream();InputStream inputStream = new FileInputStream("E:/loads"+"/账号.txt");byte[] buffer = new byte[1024];int i = -1;while ((i = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, i);}outputStream.flush();outputStream.close();}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

(第二种下载方法)

新建jsp页面选择下载

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>下载</title></head><body><a href="../DoDownloadServlet?filename=呵呵.txt">点击下载</a></body></html>

创建Servlet类进行下载(注意:该下载如果文件名是中文的话,一样会出现乱码现象)

package com.load;

import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspFactory;import javax.servlet.jsp.PageContext;import org.hsqldb.lib.StringUtil;import com.jspsmart.upload.SmartUpload;import com.jspsmart.upload.SmartUploadException;@WebServlet("/DoDownloadServlet")public class DoDownloadServlet extends HttpServlet {private static final long serialVersionUID = 1L;public DoDownloadServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//得到下载文件的名称//String filename = request.getParameter("filename");//String filename = new String(FileName.getBytes("iso8859-1"),"UTF-8");//新建SmartUpload对象SmartUpload su = new SmartUpload();PageContext pagecontext = JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, 8192, true);//上传初始化su.initialize(pagecontext);//设置禁止打开该文件su.setContentDisposition(null);//下载文件try {su.downloadFile("/listener/"+filename);} catch (SmartUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

(第三种下载的方法)

同上的jsp页面代码,这里就不再重复了。

新建Serlvet类,实现下载功能(注意:这里文件名就算是中文名,也不会出现乱码问题了!)

package com.load;

import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspFactory;import javax.servlet.jsp.PageContext;import org.hsqldb.lib.StringUtil;import com.jspsmart.upload.SmartUpload;import com.jspsmart.upload.SmartUploadException;@WebServlet("/DoDownloadServlet")public class DoDownloadServlet extends HttpServlet {private static final long serialVersionUID = 1L;public DoDownloadServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获得文件名称String path1 = request.getParameter("filename");//获得路径名称String path = request.getSession().getServletContext().getRealPath("/listener/"+path1);// path是根据日志路径和文件名拼接出来的File file = new File(path);String filename = file.getName();try {//判断是否是IE11Boolean flag= request.getHeader("User-Agent").indexOf("like Gecko")>0;//IE11 User-Agent字符串:Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko//IE6~IE10版本的User-Agent字符串:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.0; Trident/6.0)if (request.getHeader("User-Agent").toLowerCase().indexOf("msie") >0||flag){filename = URLEncoder.encode(filename, "UTF-8");//IE浏览器}else {//先去掉文件名称中的空格,然后转换编码格式为utf-8,保证不出现乱码,//这个文件名称用于浏览器的下载框中自动显示的文件名filename = new String(filename.replaceAll(" ", "").getBytes("UTF-8"), "ISO8859-1");//firefox浏览器//firefox浏览器User-Agent字符串://Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0} InputStream fis = new BufferedInputStream(new FileInputStream(path));byte[] buffer;buffer = new byte[fis.available()];fis.read(buffer);fis.close();response.reset();response.addHeader("Content-Disposition", "attachment;filename=" +filename);response.addHeader("Content-Length", "" + file.length());OutputStream os = response.getOutputStream();response.setContentType("application/octet-stream");os.write(buffer);// 输出文件os.flush();os.close();} catch (IOException e) {e.printStackTrace();}System.out.println(filename);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

『玖』 java 下载异地FTP中的zip文件

好像需要一个支持jar包把,把ftp4j的下载地址贴出来

『拾』 下载了一个java程序,是zip包格式的,请问应该怎么运行

这是一个轻量级的Java神经网络的框架,首先你电脑上必须按照jre .To use Neuroph in your Java appliacation add reference to neuroph-2.6.jar and all jars from lib folder from this distribution, and import required classes.You can create and train neural networks using NeurophStudio GUI, and load them in you app, or you can create and train them directly from code using Neuroph API.See getting started doc for more details.把neuroph-2.6.jar 放到你的项目中,如web 项目的lib 文件夹下。就可以用了。这个不是引用程序,不能直接运行。要使用可以网络下 neuroph 去找下api