(我是新手)web网页下载,在创建输入流时抛出异常

 1 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 2         //获取文件名
 3         String fileName=req.getParameter("fileName");
 4         //获取文件后缀名
 5         String str=fileName.substring(fileName.lastIndexOf("."));
 6         //设置响应头,
 7         resp.setHeader("Content-Disposition","attachment; filename="+
 8                         System.currentTimeMillis()+str);
 9         //获得绝对路径
10         String path=this.getServletContext().getRealPath(fileName);
11
12         InputStream in=null;
13         ServletOutputStream serOut=null;
14         try{
15             //创建文件
16         File file=new File(path);
17         in=new FileInputStream(file);
18         serOut=resp.getOutputStream();
19
20         byte[] by=new byte[1024];
21         int len;
22         while((len=in.read(by))!=-1){
23             serOut.write(by, 0, by.length);
24         }
25         }catch(Exception e){
26
27         }finally {
28             if(serOut!=null){
29                 serOut.close();
30             }
31             if (in!=null) {
32                 in.close();
33             }
34         }
35
36
37     }

目的,下载网络上的文件。期间共出现两次问题,都不是代码的缘故。

第一次,相关的下载文件的文件夹,位置没放到对,放到WEB-INF了,所以获得的文件绝对路径找不到文件,导致输入流出现异常,下载下来的文件大小为0kb

把文件夹放到外面,WebContent中,就解决了

把第一个问题件解决了,第一个文件下载下来,没有问题,但是下载第二个文件的时候,又出现了之前的问题

在用断点调试的过程中,发现获得的文件名中有乱码,不能获取到File对象,经过对比,发现是文件名中有中文,修改,同事修改超链接中的参数,就ok,至于怎样在不修改中文的情况下搞定,暂时还没学到。

时间: 2024-10-11 04:11:56

(我是新手)web网页下载,在创建输入流时抛出异常的相关文章

神奇的go语言(网页下载)

[ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 目前,网上关于网页爬行的代码很多.但是,自从看了go语言的web下载代码之后,我才发现原来它的网页下载代码才是最简单的.不信的话,大家可以看一下, package main import( "fmt" "log" "net/http" "os" ) func main(){ resp,err:=http.Get("

奇妙的go语言(网页下载)

[ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 眼下,网上关于网页爬行的代码非常多.可是,自从看了go语言的web下载代码之后,我才发现原来它的网页下载代码才是最简单的.不信的话,大家能够看一下, package main import( "fmt" "log" "net/http" "os" ) func main(){ resp,err:=http.Get(&quo

ABP示例程序-使用AngularJs,ASP.NET MVC,Web API和EntityFramework创建N层的单页面Web应用

本片文章翻译自ABP在CodeProject上的一个简单示例程序,网站上的程序是用ABP之前的版本创建的,模板创建界面及工程文档有所改变,本文基于最新的模板创建.通过这个简单的示例可以对ABP有个更深入的了解,每个工程里应该写什么样的代码,代码如何组织以及ABP是如何在工程中发挥作用的. 源文档地址:https://www.codeproject.com/Articles/791740/Using-AngularJs-ASP-NET-MVC-Web-API-and-EntityFram 源码可以

Chromium网页Layer Tree创建过程分析

在Chromium中,WebKit会创建一个Graphics Layer Tree描述网页.Graphics Layer Tree是和网页渲染相关的一个Tree.网页渲染最终由Chromium的CC模块完成,因此CC模块又会根据Graphics Layer Tree创建一个Layer Tree,以后就会根据这个Layer Tree对网页进行渲染.本文接下来就分析网页Layer Tree的创建过程. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 从前面Ch

第5章 网页下载器和urllib2模块

网页下载器:将互联网上URL对应的网页下载到本地的工具 通过网页下载器将互联网中的url网页,存储到本地或内存字符串 python有哪几种网页下载器? 1.urllib2  python官方基础模块 2.requests   python第三方包更强大 urllib2下载网页方法1:最简洁方法 url-------------------------->urllib2.urlopen(url) 代码: import urllib2 /#直接请求 response = urllib2.urlopn

WEB网页UI工具包PSD

WEB网页UI工具包PSD素材下载适用于网页UI设计.网页UI UI设计 播放器 日历模板 http://www.huiyi8.com/ui/gongjubao/ WEB网页UI工具包PSD

爬虫学习——网页下载器和urllib2模块

什么是网页下载器? 一.网页下载器是爬虫的核心组件 二.常用的python网页下载器有urlilib2基础模块和requests第三方插件两种 urllib2支持功能:1.支持直接url下载:2.支持向网页直接输入的数据:3.支持需要登陆网页的cookie处理:4.需要代理访问的代理处理 三.urllib2的三种下载方法 方法一.直接下载法 相应代码如下: #-*-coding:utf-8-*- #调用urllib2模块 import urllib2 #直接请求 response=urllib2

linux http服务器web网页的不同安全机制

Web网页的不同安全机制 Linux通过apach的httpd服务建立的web服务有3种不同的安全方式 身份验证 (通过账号密码验证用户的身份) 来源控制  (通过ip地址的过滤限定访问的用户) 加密访问  (通过数字证书保证数据的安全性) 一:身份验证的实现: Centos安装完成httpd服务后启动 [[email protected] Packages]# vim /etc/httpd/conf/httpd.conf   编辑配置文件 将none改为all(开启身份验证) [[email 

制作IOS企业版网页下载

有时候我们下载苹果的应用程序时不是从AppStore下载的.而是从XX网上下载的.那我们如何将苹果的应用程序IPA文件放到自己的官网上,然后供用户下载了.这样就不需要等待慢长的审核过程, 使用过android的朋友可能就会想,这不简单,直接放在服务器上,提供一个下载地址就不可以下载安装了吗? 你答对了一半,下载到手机上是没有问题,但能像apk 那样单击安装吗?当然不能.那怎么办了,过程还是有点复杂,接下来我将step-by-step的讲解一下. Step1:  配置plist文件 , 基于下面的