1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="Author" content="BuNuo">
  6. <meta name="Keywords" content="文件上传下载">
  7. <meta name="Description" content="ssh框架文件上传下载">
  8. <title>Document</title>
  9. </head>
  10. <body>
  11. <form action="newFile" method="post" enctype="multipart/form-data">
  12. <input type="file" name="file">
  13. <input type="submit" value="上传">
  14. </form>
  15. <a href="downFile?filename=${filename}">下载</a>
  16. </body>
  17. </html>
  1. package com.cpsec.tang.chemical.action;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.BufferedWriter;
  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.FileOutputStream;
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.io.InputStreamReader;
  11. import java.io.OutputStreamWriter;
  12.  
  13. import org.apache.commons.io.FileUtils;
  14. import org.apache.struts2.ServletActionContext;
  15. import org.springframework.stereotype.Controller;
  16.  
  17. import com.opensymphony.xwork2.ActionSupport;
  18.  
  19. @Controller("newFileAction")
  20. public class NewFileAction extends ActionSupport {
  21. private File file;//文件
  22. private String fileFileName;//文件名称
  23. private String fileContentType; //文件类型
  24. private String filename;
  25. private InputStream inputStream;
  26.  
  27. public String newFile(){
  28. File dir=new File(ServletActionContext.getServletContext().getRealPath("files"));
  29. //判断文件是否上传,如果上传的话将会创建该目录
  30. if(!dir.exists()){
  31. dir.mkdir(); //创建该目录
  32. }
  33. System.out.println(file);
  34. System.out.println(fileFileName);
  35. //第一种文件上传的方法
  36. //声明文件输入流,为输入流指定文件路径
  37. //获取输出流,获取文件的文件地址及名称
  38. FileInputStream in=null;
  39. FileOutputStream out=null;
  40. try{
  41. in= new FileInputStream(file);
  42. out=new FileOutputStream(dir + "\\" +fileFileName);
  43. byte[] b=new byte[1024*1024];//每次写入的大小
  44. int i=0;
  45. while((i=in.read(b))>0){
  46. out.write(b,0,i);
  47. }
  48. in.close();
  49. out.close();
  50. }catch(Exception e){
  51. e.printStackTrace();
  52. }finally{
  53. }
  54.  
  55. /*//第二种文件上传的方法
  56. try {
  57. FileUtils.copyFile(file,new File(dir,fileFileName));
  58. } catch (IOException e) {
  59. e.printStackTrace();
  60. }
  61.  
  62. //第三种方法
  63. BufferedReader bReader=null;
  64. BufferedWriter bWriter=null;
  65. try{
  66. bReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
  67. bWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dir+"\\"+fileFileName)));
  68. char[] str=new char[1024*1024];
  69. int i=0;
  70. while((i=bReader.read(str))>0){
  71. bWriter.write(str,0,i);
  72. }
  73. bReader.close();
  74. bWriter.close();
  75. dir.delete();
  76. }catch(Exception e){
  77. e.printStackTrace();
  78. }finally{
  79.  
  80. } */
  81. return SUCCESS;
  82. }
  83.  
  84. public String downFile(){
  85. System.out.println(filename);
  86. inputStream=ServletActionContext.getServletContext().getResourceAsStream("/files/"+filename);
  87. System.out.println(inputStream);
  88. return SUCCESS;
  89. }
  90.  
  91. public File getFile() {
  92. return file;
  93. }
  94.  
  95. public void setFile(File file) {
  96. this.file = file;
  97. }
  98.  
  99. public String getFileFileName() {
  100. return fileFileName;
  101. }
  102.  
  103. public void setFileFileName(String fileFileName) {
  104. this.fileFileName = fileFileName;
  105. }
  106.  
  107. public String getFileContentType() {
  108. return fileContentType;
  109. }
  110.  
  111. public void setFileContentType(String fileContentType) {
  112. this.fileContentType = fileContentType;
  113. }
  114.  
  115. public String getFilename() {
  116. return filename;
  117. }
  118.  
  119. public void setFilename(String filename) {
  120. this.filename = filename;
  121. }
  122.  
  123. public InputStream getInputStream() {
  124. return inputStream;
  125. }
  126.  
  127. public void setInputStream(InputStream inputStream) {
  128. this.inputStream = inputStream;
  129. }
  130.  
  131. }
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4. "http://struts.apache.org/dtds/struts-2.3.dtd">
  5. <struts>
  6. <package name="newFileAction" namespace="/" extends="struts-default">
  7.  
  8. <action name="downFile" class="newFileAction" method="downFile">
  9. <result name="success" type="stream">
  10. <param name="contentType">application/octet-stream;charset=ISO8859-1</param>
  11. <!-- inputName 流对象名 —— 比如这里写inputStream,它就会自动去找Action中的getInputStream方法。 -->
  12. <param name="inputName">inputStream</param>
  13. <!-- contentDisposition 使用经过转码的文件名作为下载文件名 —— 默认格式是attachment;filename="${fileName}",将调用该Action中的getFileName方法。 -->
  14. <param name="contentDisposition">attachment;filename=${filename}</param>
  15. <!-- bufferSize 下载文件的缓冲大小 -->
  16. <param name="bufferSize">4096</param>
  17. </result>
  18. </action>
  19. </package>
  20. </struts>

ssh框架文件上传下载的更多相关文章

  1. 文件上传—SSH框架文件上传

    1.准备上传的api组件 <dependency> <groupId>commons-io</groupId> <artifactId>commons- ...

  2. 艺萌文件上传下载及自动更新系统(基于networkComms开源TCP通信框架)

    1.艺萌文件上传下载及自动更新系统,基于Winform技术,采用CS架构,开发工具为vs2010,.net2.0版本(可以很容易升级为3.5和4.0版本)开发语言c#. 本系统主要帮助客户学习基于TC ...

  3. Struts 框架 之 文件上传下载案例

    Struts 框架 文件上传 1. 先准备 Struts 环境 (我使用的是struts 2.3.4版本) 导jar包:

  4. springmvc文件上传下载简单实现案例(ssm框架使用)

    springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭 ...

  5. Struts的文件上传下载

    Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...

  6. 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)

    艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...

  7. NetworkComms 文件上传下载和客户端自动升级(非开源)

    演示程序下载地址:http://pan.baidu.com/s/1geVfmcr 淘宝地址:https://shop183793329.taobao.com 联系QQ号:3201175853 许可:购 ...

  8. SpringMVC文件上传下载

    在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/q ...

  9. FastDFS实现文件上传下载实战

    正好,淘淘商城讲这一块的时候,我又想起来当时老徐让我写过一个关于实现FastDFS实现文件上传下载的使用文档,当时结合我们的ITOO的视频系统和毕业论文系统,整理了一下,有根据网上查到的知识,总结了一 ...

随机推荐

  1. XFire完整入门教程

    网上关于XFire入门的教程不少,要么是讲得很简单,就像Hello World一样的程序,要么就是通过IDE集成的工具来开发的,这对于不同的人群有诸多不便,关于XFire的一些详细的信息就不再多讲,可 ...

  2. 第二,C语言示例

    #include<stdio.h> int main (void)                 /*WTF*/ { int num; num=1; printf(" I am ...

  3. Linux删除多个java进程的其中一个

    一.背景: Linux后台运行了多个Java程序,进程名都是java. 执行pkill java会一次性杀掉所有的java进程. 二.解决思路: 先通过一定的检索条件,定位出指定的java进程 然后解 ...

  4. 微信小程序-媒体组件

    audio 音频. MediaError.code 示例代码: <!-- audio.wxml --> <audio poster="{{poster}}" na ...

  5. 读《编写可维护的JavaScript》第八章总结

    第八章 避免“空比较” 我们在对传进来的参数做处理之前,肯定需要验证一下是否是我们想要的,也就是说大多数情况下,我们需要对比一下它的类型. 作者首先给了一个看起来都感觉不对的代码: var Contr ...

  6. HDU 5968 异或密码

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  7. OpenLayers元素选择工具

    OpenLayers的selector工具相信挺多人都没有用过,其实这个工具用处还是不少的.比如完成元素查询时,需要实现图属性联动,使用这个工具很方便.最近做项目时也使用到这个工具,使用起来确实挺方便 ...

  8. php : DOM 操作 XML

    DOM 操作 XML 基本用法 XML文件: person.XML <?xml version="1.0" encoding="utf-8" ?> ...

  9. HTML的基本骨架

    HTML:生命html网页当前范围,所有内容写在该标签中 head:用来设置当前页面的一些属性及样式等等.这部分是用户看不到的,title除外. body:网页的内容部分,网页中所有布局写在该标签中. ...

  10. springcloud(第三篇)springcloud eureka 服务注册与发现 *****

    http://blog.csdn.net/liaokailin/article/details/51314001 ******************************************* ...