action中实现对批量文件上传的封装
如今,文件(尤其是图片)上传,在前后台的应用相当普遍,上传头像、共享资料等已成为最基本应用。我们很希望通过一个万能的封装方法来实现一劳永逸的效果。
接下来,就来为大家介绍具体实现。
首先,我们需要一个struts框架下的项目工程,在webRoot目录下新建upload文件夹,用来存放上传文件
然后,写一个简单的jsp,实现(批量)文件上传功能,这里注意:将所有上传文件框的name属性设为file,以便action接收
之后,编写action,在action内首先要写入如下几个变量,及其get/set方法。
private List<File> file;
private List<String> fileFileName;
private List<String> fileContentType;
各自代表的意义一目了然。
接下来就正式编写封装方法
public String uploadImg() throws IOException {
String str = null;
// 得到工程保存图片的路径
String root = ServletActionContext.getRequest().getRealPath("/upload");
// 循环上传的文件
for (int i = 0; i < file.size(); i++) {
InputStream is = new FileInputStream(file.get(i));
// 得到图片保存的位置(根据root来得到图片保存的路径在tomcat下的该工程里)
File destFile = new File(root, this.getFileFileName().get(i));
str = destFile.getName();
// 把图片写入到上面设置的路径里
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[400];
int length = 0;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
is.close();
os.close();
}
return str;
}
OK,这个方法既实现了将文件保存到tomcat下的相应文件夹中,又将保存的文件名告诉了我们, "upload/" + uploadImg() 即是本工程下的路径。
如果文件是某对象的一个属性,那么直接XXX.setXxx( "upload/" + uploadImg()) 存于数据库
下一篇 介绍文件的转移
以前的文件上传只是存放于tomcat本项目下的文件夹中,接下来我们要实现本项目上传文件至其他项目的文件夹下,如商城后台如何将后台上架图片放到前台展示,欢迎关注
action中实现对批量文件上传的封装的更多相关文章
- android批量文件上传(android批量图片上传)
项目中多处用到文件批量上传功能,今天正好解决了此问题,在此写出来,以便日后借鉴. 首先,以下架构下的批量文件上传可能会失败或者不会成功: 1.android客户端+springMVC服务端:服务端 ...
- 利用struts2进行单个文件,批量文件上传,ajax异步上传以及下载
利用struts2进行单个文件,批量文件上传,ajax异步上传以及下载 1.页面显示代码 <%@ page language="java" import="java ...
- 分享知识-快乐自己:SpringMvc中的单多文件上传及文件下载
摘要:SpringMvc中的单多文件上传及文件下载:(以下是核心代码(拿过去直接能用)不谢) <!--设置文件上传需要的jar--> <dependency> <grou ...
- zt对于C#中的FileUpload解决文件上传大小限制的问题设置
对于C#中的FileUpload解决文件上传大小限制的问题设置 您可能没意识到,但对于可以使用该技术上载的文件的大小存在限制.默认情况下,使用 FileUpload 控件上载到服务器的文件最大为 4M ...
- Asp.Net或WebAPI获取表单数据流(批量文件上传)
//Web或WebAPI获取表单数据流(批量文件上传) public JsonResult UploadFile() { //HttpPostedFi ...
- springboot中使用分页,文件上传,jquery的具体步骤(持续更新)
分页: pom.xml 加依赖 <dependency> <groupId>com.github.pagehelper</groupId> <arti ...
- SpringMVC中使用 MultipartFile 进行文件上传下载及删除
一:引入必要的包 <!--文件上传--> <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fil ...
- 在Express中使用Multiparty进行文件上传及POST、GET参数获取
Express 版本:4.14.1 在Express中,文件上传需要用到multiparty中间件,在项目目录中,通过npm install multiparty –save进行安装必要组件. 前端H ...
- flask中的表单文件上传
在表单中上传文件时,一定要加入 enctype="multipart/form-data" 属性 为什么要加入这个属性呢: enctype就是encodetype就是编码类型的意思 ...
随机推荐
- JVM的体系结构——JVM之三
JVM的内部体系结构分为四部分, (1)类装载器(ClassLoader)子系统 作用: 用来装载.class文件 (2)执行引擎 作用:执行字节码,或者执行本地方法 (3)垃圾回收子系统 作用:垃圾 ...
- 为openwrt编译xd-h3c
西电老校区,openwrt上用的认证软件. 在package下新建一目录"xd-h3c",在里面新建一个Makefile,内容如下: include $(TOPDIR)/rules ...
- Android常用代码
1.图片旋转 Bitmap bitmapOrg = BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable. ...
- python-django如何在sae中使用自带ImageField和FileField -django-上善若水小站
python-django如何在sae中使用自带ImageField和FileField -django-上善若水小站 python-django如何在sae中使用自带ImageField和FileF ...
- Android单元測试之JUnit
随着近期几年測试方面的工作慢慢火热起来.常常看见有招聘測试project师的招聘信息.在Java中有单元測试这么一个JUnit 方式,Android眼下主要编写的语言是Java,所以在Android开 ...
- nyoj 523 亡命逃窜 【BFS】
亡命逃窜 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 从前有个叫hck的骑士,为了救我们漂亮的公主,潜入魔王的老巢,够英雄吧.只是英雄不是这么好当的.这个可怜的娃 ...
- 【main()的参数探究】
恩...今天研究信安的课件的时候看到一段对于main(int argc,char *argv[])的编程 所以探究探究main()函数的参数 探究程序如下: #include <cstdio&g ...
- golang之interface
一.概述 接口类型是对 "其他类型行为" 的抽象和概况:因为接口类型不会和特定的实现细节绑定在一起:很多面向对象都有类似接口概念,但Golang语言中interface的独特之处在 ...
- Jquery实现鼠标hover图片遮罩弹出提示层特效
1.引入JS文件和所需要的样式文件 2.简单的写上以下18行代码就可以实现了 $(document).ready(function() { $("div.tip_trigger a.img& ...
- Ugly Number,Ugly Number II,Super Ugly Number
一.Ugly Number Write a program to check whether a given number is an ugly number. Ugly numbers are po ...