最近在学习ssh框架,我用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}" rel="external nofollow" >下载</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框架实现文件上传
# ssh框架文件上传下载
# SSH 框架简介
# SSH框架实现表单上传图片实例代码
# 浅谈SSH框架中spring的原理
# 详解ssh框架原理及流程
# 上传
# 文件上传
# 就会
# 将会
# 去找
# 我用
# 写了
# 种方法
# 第二种
# 第一种
# 大家多多
# File
# external
# java
# nofollow
# IOException
# InputStream
# FileInputStream
# FileOutputStream
# cpsec
相关文章:
建站之星后台管理系统如何操作?
如何通过wdcp面板快速创建网站?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
建站之星在线客服如何快速接入解答?
定制建站策划方案_专业建站与网站建设方案一站式指南
如何快速查询网址的建站时间与历史轨迹?
如何通过NAT技术实现内网高效建站?
网站制作新手教程,新手建设一个网站需要注意些什么?
兔展官网 在线制作,怎样制作微信请帖?
深圳网站制作平台,深圳市做网站好的公司有哪些?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
代购小票制作网站有哪些,购物小票的简要说明?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何实现建站之星域名转发设置?
宝塔建站无法访问?如何排查配置与端口问题?
C++中引用和指针有什么区别?(代码说明)
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何在腾讯云服务器上快速搭建个人网站?
如何快速生成橙子建站落地页链接?
,如何利用word制作宣传手册?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
建站之星后台密码遗忘或太弱?如何重置与强化?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
宝塔Windows建站如何避免显示默认IIS页面?
海南网站制作公司有哪些,海口网是哪家的?
黑客入侵网站服务器的常见手法有哪些?
小型网站制作HTML,*游戏网站怎么搭建?
宝塔新建站点报错如何解决?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
建站之星×万网:智能建站系统+自助建站平台一键生成
存储型VPS适合搭建中小型网站吗?
历史网站制作软件,华为如何找回被删除的网站?
如何快速建站并高效导出源代码?
香港服务器部署网站为何提示未备案?
建站之星2.7模板:企业网站建设与h5定制设计专题
建站上市公司网站建设方案与SEO优化服务定制指南
常州企业网站制作公司,全国继续教育网怎么登录?
如何用景安虚拟主机手机版绑定域名建站?
如何获取PHP WAP自助建站系统源码?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
C#如何使用XPathNavigator高效查询XML
如何在自有机房高效搭建专业网站?
Android使用GridView实现日历的简单功能
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
网站专业制作公司有哪些,做一个公司网站要多少钱?
如何高效利用亚马逊云主机搭建企业网站?
建站之星展会模版如何一键下载生成?
如何在阿里云虚拟主机上快速搭建个人网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。