首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

文件上载(只需要简单的四步),Java中都通用

2012-08-30 
文件下载(只需要简单的四步),Java中都通用我们就直接切入主题啦,文件下载只需要四步:1.设置文件ContentTyp

文件下载(只需要简单的四步),Java中都通用

我们就直接切入主题啦,文件下载只需要四步:

1.设置文件ContentType类型

2.设置文件头

3.通过response获取ServletOutputStream对象(out)

4.写到输出流(out)中

?

下载代码:

这里我使用的是SpringMVC,不过它在这里的唯一用途就是用来获取ServletContext对象,这个对象的用途,下面实例中有说明

下载,需要用到两个jar包:commons-fileupload.jar和commons-io.jar

?

?

?

?


同一这位兄弟说法,呵呵...
input = new FileInputStream(downloadFile);
output = response.getOutputStream();
IOUtils.copy(input, output);
output.flush();
} catch (Exception e) {
logger.error("Exception: ", e);
} finally {
IOUtils.closeQuietly(output);
IOUtils.closeQuietly(input);
}input = new FileInputStream(downloadFile);
output = response.getOutputStream();
IOUtils.copy(input, output);
output.flush();
} catch (Exception e) {
logger.error("Exception: ", e);
} finally {
IOUtils.closeQuietly(output);
IOUtils.closeQuietly(input);
}
第一句,application单词拼错了老大...
能提供一些实例吗?新人,想学习一下。谢谢!
能提供一些实例吗?新人,想学习一下。谢谢!
今天课多,有空给你提供一下  呵呵...
能提供一些实例吗?新人,想学习一下。谢谢!
把上面的代码:34行到44行换成下面代码,就是简单的包装:
BufferedOutputStream bout = new BufferedOutputStream(out);
int b = 0;
byte[] buffer = new byte[512];
while (b != -1){
    b = inputStream.read(buffer);
    bout.write(buffer,0,b);
}
inputStream.close();
bout.close();
bout.flush(); 帮我朋友写了个个人用的办公系统,用struts2+spring3做的,用的poi,导入excel的时候没什么问题,导出excel的时候一超过10个字段的就溢出,现在也没查处哪里的毛病 然后在Action里面必须提供一个public InputStream getTargetFile()的方法返回一个InputStream来获取下载文件的输入流,而workbook只能使用write(out)这样的方法,这样的话能够在Action里面做Excel导出吗? 帮我朋友写了个个人用的办公系统,用struts2+spring3做的,用的poi,导入excel的时候没什么问题,导出excel的时候一超过10个字段的就溢出,现在也没查处哪里的毛病
信息不太全呀 然后在Action里面必须提供一个public InputStream getTargetFile()的方法返回一个InputStream来获取下载文件的输入流,而workbook只能使用write(out)这样的方法,这样的话能够在Action里面做Excel导出吗?
这种下载代码通用呀,也有专门针对Struts的:注解和xml中配置两种方式...然后在Action里面必须提供一个public InputStream getTargetFile()的方法返回一个InputStream来获取下载文件的输入流,而workbook只能使用write(out)这样的方法,这样的话能够在Action里面做Excel导出吗?
这种下载代码通用呀,也有专门针对Struts的:注解和xml中配置两种方式...
代码是通用的没问题,关键是最后输出文件的方式,POI的workbook.write(outputStream)是用来输出生成的Excel的,如果是在Servlet中那么没问题,outputStream直接使用response的outputStream就行,但是如果是在Struts的Action中,就不能够直接使用response的outputStream,必须要通过Struts对应Acton的<result>标签指定的资源来响应客户端的请求,Struts下载的result类型是stream,这个在我给的配置文件中有,而且Struts必须要求提供一个InputStream,但是POI的workbook生成文件的方法是workbook.write(outputStream),注意到这里的一个是要求InputStream,一个只能提供outputStream,这就是我所说的撞车的地方!(不知道我说清楚了没有)然后在Action里面必须提供一个public InputStream getTargetFile()的方法返回一个InputStream来获取下载文件的输入流,而workbook只能使用write(out)这样的方法,这样的话能够在Action里面做Excel导出吗?
这种下载代码通用呀,也有专门针对Struts的:注解和xml中配置两种方式...
代码是通用的没问题,关键是最后输出文件的方式,POI的workbook.write(outputStream)是用来输出生成的Excel的,如果是在Servlet中那么没问题,outputStream直接使用response的outputStream就行,但是如果是在Struts的Action中,就不能够直接使用response的outputStream,必须要通过Struts对应Acton的<result>标签指定的资源来响应客户端的请求,Struts下载的result类型是stream,这个在我给的配置文件中有,而且Struts必须要求提供一个InputStream,但是POI的workbook生成文件的方法是workbook.write(outputStream),注意到这里的一个是要求InputStream,一个只能提供outputStream,这就是我所说的撞车的地方!(不知道我说清楚了没有)
恩 好,我这一段有点忙 不能及时回复 请谅解呀 盆友...然后在Action里面必须提供一个public InputStream getTargetFile()的方法返回一个InputStream来获取下载文件的输入流,而workbook只能使用write(out)这样的方法,这样的话能够在Action里面做Excel导出吗?
这种下载代码通用呀,也有专门针对Struts的:注解和xml中配置两种方式...
代码是通用的没问题,关键是最后输出文件的方式,POI的workbook.write(outputStream)是用来输出生成的Excel的,如果是在Servlet中那么没问题,outputStream直接使用response的outputStream就行,但是如果是在Struts的Action中,就不能够直接使用response的outputStream,必须要通过Struts对应Acton的<result>标签指定的资源来响应客户端的请求,Struts下载的result类型是stream,这个在我给的配置文件中有,而且Struts必须要求提供一个InputStream,但是POI的workbook生成文件的方法是workbook.write(outputStream),注意到这里的一个是要求InputStream,一个只能提供outputStream,这就是我所说的撞车的地方!(不知道我说清楚了没有)
恩 好,我这一段有点忙 不能及时回复 请谅解呀 盆友...
冒得事,呵呵
我觉得这个很正常吧。。。我需要在他点击下载后再生成下载文件。那么不走action走什么呢。关键我觉得在于后台给前台提供的是一个文件流还是一个文件吧。。。猜测而已

热点排行