jsp实现文件上传下载的程序示例

   2015-06-27 0
核心提示:上传下载在开发中经常用到,本文提供了jsp实现的文件上传下载的示例程序,大家可以参考使用

一、文件上传
上传文件是Web开发中经常要用到的功能:例如在基于B/S的人事信息管理系统中上传照片,在新闻发布系统中上传图片等等。。。。。要实现文件上传功能,就需要综合利用java中的文件输入和输出相关的类。
在TCP/IP中,最早出现的文件上传机制是FTP。它是将文件由客服端发送到服务器的标准机制,能够考虑到跨平台的文本和二进制格式文件。但是在jsp编程中不能使用FTP方法来上传文件,这是由jsp 运行机制所决定的。
下面是上传文件的jsp页面:

当单击这个超级链接时,将会在浏览器中直接打开这个文档,就像是把word软件嵌入在浏览器中一样。
打开文档后就可以实现另存为了。当然在web上,最常见的方式是单击链接后,出现“另存为”对话框:

复制代码 代码如下:

//获取要下载的文件名
        String filename = request.getParameter("name");
        //得到想客服端输出的输出流
        OutputStream outputStream = response.getOutputStream();
        //输出文件用的字节数组,每次向输出流发送600个字节
        byte b[] = new byte[600];
        //要下载的文件
        File fileload = new File("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad",filename);       
        //客服端使用保存文件的对话框
        response.setHeader("Content-disposition", "attachment;filename="+filename);
        //通知客服文件的MIME类型
        response.setContentType("application/msword");
        //通知客服文件的长度
        long fileLength = fileload.length();
        String length = String.valueOf(fileLength);
        response.setHeader("Content_length", length);
        //读取文件,并发送给客服端下载
        FileInputStream inputStream = new FileInputStream(fileload);
        int n = 0;
        while((n=inputStream.read(b))!=-1){
            outputStream.write(b,0,n);
        }

在该程序中,response对象的setContentType()用来定义服务器发送给客服端内容的MIME类型。这里对MIME就不特别介绍了。事实上,凡是浏览器能处理的所有资源都有对应的MIME资源类型。在与服务器的交互中,浏览器就是对html、jsp等文件浏览器直接将其打开。对于word、excel等浏览器自身不能打开的文件则调用相应的方法。对于没有标记MIME类型的文件。浏览器则根据其扩展名和文件内容猜测其类型。。。

 
标签: 文件上传 jsp
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • php实现文件上传进度条
    php实现文件上传进度条
     在PHP5.4以前, 我们可以通过APC提供的功能来实现. 或者使用PECL扩展uploadprogress来实现.虽然说, 它们能很好的解决现在的问题, 但是也有很明显的不足:1. 他们都需要额外安装(我们并没有打算把APC加入PHP5.4)2. 它们都使用本地机制来存储这些信息, APC使用
    02-09
  • nodejs教程---基于expressJs框架,实现文件上传
    文件上传功能在nodejs初期是一件很难实现的功能,之后出现了formidable勉强能解决这个问题,但是express框架出现之后基于这个框架开发的中间件有更好的方法来处理文件上传,这个中间件就是multer,multer中间件的github地址是https://github.com/expressjs/mu
    02-09
  • nodejs 文件上传
    方法一:---------支持中文,图片显示------------//-------文件上传------router.post('/imgupload',function(req,res){//-----------------------------------------var form = new multiparty.Form();//设置编辑form.encoding = 'utf-8';//设置文件存储路径
    02-09
  • nodejs上传多个文件 nodejs文件上传服务器
    以下方式皆用formidable: https://www.npmjs.com/package/formidable一、方式1文件一个一个的转存router.post(url, (req, res) = {let form = formidable.IncomingForm({encoding : 'utf-8',//上传编码uploadDir : temp_floder,//上传目录,指的是服务器的路
    02-09
  • 用NODEJS处理EXCEL文件导入导出,文件上传
    參考文章http://librajt.github.io/2013/08/04/handle-excel-file-with-nodejs/对照了 ExcelJS , https://github.com/guyonroche/exceljs#create-a-workbooknode-xlsx。https://github.com/mgcrea/node-xlsx等 nodejs 等现有组件。决定使用node-xlsx。node-xl
    02-09
  • Eolink上传文件到Java后台进行处理
    Eolink上传文件到Java后台进行处理
    目录Eolink上传文件配置:接收文件请求并进行业务处理@RequestMapping(value = "shangchuan")@ResponseBodypublic synchronized R fileUpload(HttpServletRequest request) {try {String[] fields = { "gddname", "lineName", "gddgpsjd", "gddgpswd&
  • php文件上传下载组件
    php文件上传下载组件
    核心原理: 该项目核心就是文件分块上传。前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题。* 如何分片;* 如何合成一个文件;* 中断了从哪个分片开始。如何分,利用强大的js库,来减轻我们的工作,市
    02-09
  • PHP文件上传并解决中文文件名乱码问题
    PHP文件上传并解决中文文件名乱码问题12345678910111213141516171819if(isset($_FILES['file'])){     $upload='upload/'.$_FILES['file']['name'];              if(is_uploaded_file($_FILES['file']['tmp_name'])){        /
    02-09
  • php 文件上传类型
    上传文件类型的案例:https://blog.csdn.net/qq_31279347/article/details/82715925
    02-09
  • ASP.NET C# 文件上传速度限制
    这个是一个Restful上传文件的实现方法,我们可以在上传过程中通过线程等待来现实限速功能/// summary/// 上传/// /summary/// param name="fileName"/param/// param name="fileStream"/parampublic void FileUpload(string fileName, Stream fileStream){Fil
    02-09
点击排行