ssh框架文件上传下载
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="Author" content="BuNuo">
- <meta name="Keywords" content="文件上传下载">
- <meta name="Description" content="ssh框架文件上传下载">
- <title>Document</title>
- </head>
- <body>
- <form action="newFile" method="post" enctype="multipart/form-data">
- <input type="file" name="file">
- <input type="submit" value="上传">
- </form>
- <a href="downFile?filename=${filename}">下载</a>
- </body>
- </html>
- package com.cpsec.tang.chemical.action;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import org.apache.commons.io.FileUtils;
- import org.apache.struts2.ServletActionContext;
- import org.springframework.stereotype.Controller;
- import com.opensymphony.xwork2.ActionSupport;
- @Controller("newFileAction")
- public class NewFileAction extends ActionSupport {
- private File file;//文件
- private String fileFileName;//文件名称
- private String fileContentType; //文件类型
- private String filename;
- private InputStream inputStream;
- public String newFile(){
- File dir=new File(ServletActionContext.getServletContext().getRealPath("files"));
- //判断文件是否上传,如果上传的话将会创建该目录
- if(!dir.exists()){
- dir.mkdir(); //创建该目录
- }
- System.out.println(file);
- System.out.println(fileFileName);
- //第一种文件上传的方法
- //声明文件输入流,为输入流指定文件路径
- //获取输出流,获取文件的文件地址及名称
- FileInputStream in=null;
- FileOutputStream out=null;
- try{
- in= new FileInputStream(file);
- out=new FileOutputStream(dir + "\\" +fileFileName);
- byte[] b=new byte[1024*1024];//每次写入的大小
- int i=0;
- while((i=in.read(b))>0){
- out.write(b,0,i);
- }
- in.close();
- out.close();
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- }
- /*//第二种文件上传的方法
- try {
- FileUtils.copyFile(file,new File(dir,fileFileName));
- } catch (IOException e) {
- e.printStackTrace();
- }
- //第三种方法
- BufferedReader bReader=null;
- BufferedWriter bWriter=null;
- try{
- bReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
- bWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dir+"\\"+fileFileName)));
- char[] str=new char[1024*1024];
- int i=0;
- while((i=bReader.read(str))>0){
- bWriter.write(str,0,i);
- }
- bReader.close();
- bWriter.close();
- dir.delete();
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- } */
- return SUCCESS;
- }
- public String downFile(){
- System.out.println(filename);
- inputStream=ServletActionContext.getServletContext().getResourceAsStream("/files/"+filename);
- System.out.println(inputStream);
- return SUCCESS;
- }
- public File getFile() {
- return file;
- }
- public void setFile(File file) {
- this.file = file;
- }
- public String getFileFileName() {
- return fileFileName;
- }
- public void setFileFileName(String fileFileName) {
- this.fileFileName = fileFileName;
- }
- public String getFileContentType() {
- return fileContentType;
- }
- public void setFileContentType(String fileContentType) {
- this.fileContentType = fileContentType;
- }
- public String getFilename() {
- return filename;
- }
- public void setFilename(String filename) {
- this.filename = filename;
- }
- public InputStream getInputStream() {
- return inputStream;
- }
- public void setInputStream(InputStream inputStream) {
- this.inputStream = inputStream;
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
- "http://struts.apache.org/dtds/struts-2.3.dtd">
- <struts>
- <package name="newFileAction" namespace="/" extends="struts-default">
- <action name="downFile" class="newFileAction" method="downFile">
- <result name="success" type="stream">
- <param name="contentType">application/octet-stream;charset=ISO8859-1</param>
- <!-- inputName 流对象名 —— 比如这里写inputStream,它就会自动去找Action中的getInputStream方法。 -->
- <param name="inputName">inputStream</param>
- <!-- contentDisposition 使用经过转码的文件名作为下载文件名 —— 默认格式是attachment;filename="${fileName}",将调用该Action中的getFileName方法。 -->
- <param name="contentDisposition">attachment;filename=${filename}</param>
- <!-- bufferSize 下载文件的缓冲大小 -->
- <param name="bufferSize">4096</param>
- </result>
- </action>
- </package>
- </struts>
ssh框架文件上传下载的更多相关文章
- 文件上传—SSH框架文件上传
1.准备上传的api组件 <dependency> <groupId>commons-io</groupId> <artifactId>commons- ...
- 艺萌文件上传下载及自动更新系统(基于networkComms开源TCP通信框架)
1.艺萌文件上传下载及自动更新系统,基于Winform技术,采用CS架构,开发工具为vs2010,.net2.0版本(可以很容易升级为3.5和4.0版本)开发语言c#. 本系统主要帮助客户学习基于TC ...
- Struts 框架 之 文件上传下载案例
Struts 框架 文件上传 1. 先准备 Struts 环境 (我使用的是struts 2.3.4版本) 导jar包:
- springmvc文件上传下载简单实现案例(ssm框架使用)
springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭 ...
- Struts的文件上传下载
Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...
- 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...
- NetworkComms 文件上传下载和客户端自动升级(非开源)
演示程序下载地址:http://pan.baidu.com/s/1geVfmcr 淘宝地址:https://shop183793329.taobao.com 联系QQ号:3201175853 许可:购 ...
- SpringMVC文件上传下载
在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/q ...
- FastDFS实现文件上传下载实战
正好,淘淘商城讲这一块的时候,我又想起来当时老徐让我写过一个关于实现FastDFS实现文件上传下载的使用文档,当时结合我们的ITOO的视频系统和毕业论文系统,整理了一下,有根据网上查到的知识,总结了一 ...
随机推荐
- XFire完整入门教程
网上关于XFire入门的教程不少,要么是讲得很简单,就像Hello World一样的程序,要么就是通过IDE集成的工具来开发的,这对于不同的人群有诸多不便,关于XFire的一些详细的信息就不再多讲,可 ...
- 第二,C语言示例
#include<stdio.h> int main (void) /*WTF*/ { int num; num=1; printf(" I am ...
- Linux删除多个java进程的其中一个
一.背景: Linux后台运行了多个Java程序,进程名都是java. 执行pkill java会一次性杀掉所有的java进程. 二.解决思路: 先通过一定的检索条件,定位出指定的java进程 然后解 ...
- 微信小程序-媒体组件
audio 音频. MediaError.code 示例代码: <!-- audio.wxml --> <audio poster="{{poster}}" na ...
- 读《编写可维护的JavaScript》第八章总结
第八章 避免“空比较” 我们在对传进来的参数做处理之前,肯定需要验证一下是否是我们想要的,也就是说大多数情况下,我们需要对比一下它的类型. 作者首先给了一个看起来都感觉不对的代码: var Contr ...
- HDU 5968 异或密码
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
- OpenLayers元素选择工具
OpenLayers的selector工具相信挺多人都没有用过,其实这个工具用处还是不少的.比如完成元素查询时,需要实现图属性联动,使用这个工具很方便.最近做项目时也使用到这个工具,使用起来确实挺方便 ...
- php : DOM 操作 XML
DOM 操作 XML 基本用法 XML文件: person.XML <?xml version="1.0" encoding="utf-8" ?> ...
- HTML的基本骨架
HTML:生命html网页当前范围,所有内容写在该标签中 head:用来设置当前页面的一些属性及样式等等.这部分是用户看不到的,title除外. body:网页的内容部分,网页中所有布局写在该标签中. ...
- springcloud(第三篇)springcloud eureka 服务注册与发现 *****
http://blog.csdn.net/liaokailin/article/details/51314001 ******************************************* ...