MIME类型

    在web开发中有MIME类型一说,它设计的最初目的是为了在发送电子邮件时附加多媒体数据的,让邮件客户程序能根据期类型进行处理(MIME意为多目 Internet邮件扩展)。

常见的MIME类型

  1. 超文本标记语言文本 .html,.html text/html
  2. 普通文本 .txt text/plain
  3. RTF文本 .rtf application/rtf
  4. GIF图形 .gif image/gif
  5. JPEG图形 .ipeg,.jpg image/jpeg
  6. au声音文件 .au audio/basic
  7. MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
  8. RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
  9. MPEG文件 .mpg,.mpeg video/mpeg
  10. AVI文件 .avi video/x-msvideo
  11. GZIP文件 .gz application/x-gzip
  12. TAR文件 .tar application/x-tar
  13. .amr audio/amr
  14. .pmdaudio/pmd
  15. .3gp video/3gpp
  16. .cab application/vnd.smartpohone
  17. .hme application/vnd.smartphone.thm
  18. .jad text/vnd.sun.j2me.app-descriptor
  19. .jar application/java-archive
  20. .mp3 audio/x-mpeg
  21. .mp4 video/mp4
  22. .ogg application/ogg
  23. .pdb application/ebook
  24. .rm video/rm
  25. .rng application/vnd.nokia.ringing-tone
  26. .sdt application/vnd.sie.thm
  27. .sisx x-epoc/x-sisx-app
  28. .sis application/vnd.symbian.install
  29. .thm application/vnd.eri.thm
  30. .tsk application/vnd.ppc.thm
  31. .umd application/umd
  32. .utz application/vnd.uiq.thm
  33. .exe application/ocelet-stream
  34. .rar application/ocelet-stream

每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等, 后面定义具体的种类。

      这些定义使浏览器能够首先尝试打开操作,但操作不成功就提示下载对话框,要想浏览器一定能弹出对话框,可以对response设置一个浏览器永远也不认识 的MIME类型,其实也有更好的方法。

在响应头中设置Content-disposition属性, 如:response.setHeader("Content-disposition", "attachment;filename=x.txt"); 该方法不但可以使浏览器弹出下载对话框,而且还可以指定默认的文件名,比要设置不认识的MIME类型要好的多。如果确定下载的文件类型,最好还是设置一下 MIME类型,content-disposition响应头已经打开下载的对话框了,MIME类型就很容易的提示下载保存的文件类型。

使用Servlet做文件下载例子就很方便了

public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  String fileName = request.getParameter("file");
  
  response.setHeader("Content-disposition", "attachment;filename="+fileName);
  
  BufferedInputStream buffInputStr = new BufferedInputStream(new FileInputStream(fileName));
  BufferedOutputStream buffOutputStr = new BufferedOutputStream(response.getOutputStream());
  int length = -1;
  byte[] b = new byte[1024];
  while ((length=buffInputStr.read(b))!=-1) {
   buffOutputStr.write(b, 0, length);
  }
  buffOutputStr.flush();
  buffInputStr.close();
  buffOutputStr.close();
  
 }

 

还有一种

public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  
   response.setContentType("application/x-msdownload");
   response.addHeader("Content-Disposition", "attachment;filename=lyc.txt");
   
   ServletOutputStream sos =response.getOutputStream();
   sos.write("Hello Word! Hello China! I Love You!".getBytes());
   sos.close();
 }

【PS:转自CSDN-》http://blog.csdn.net/lyc5202006】

转载于:https://www.cnblogs.com/coolronson/archive/2010/07/09/1774447.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值