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就是编码类型的意思 ...
随机推荐
- Problem 1008 Hay Points
Problem Description Each employee of a bureaucracy has a job description - a few paragraphs that des ...
- chart
var pieChart = { width: 600, height: 400, series: [], unit: "kg", chartCanvas: null, selec ...
- poj3624 简单的01背包问题
问题描述: 总共有N种宝石供挑选,宝石i的重量为Wi,吸引力为Di,只可以用一次.Bessie最多可负担的宝石手镯总重量为M.给出N,M,Wi,Di,求M. 非常标准的01背包问题.使用了优化的一维数 ...
- Hibernate + MySQL中文乱码问题
如果持久化的类中有包括了汉字的String对象,那么对应到数据库中汉字的部分就会是乱码.这主要是由于MySQL数据表的字符集与我们当前使用的本地字符集不相同造成的. 如果是windows系统,那么系统 ...
- ping网络故障
网络的应用已渐渐深入我们的工作和生活,它带给了我们各方面的便利.因此,这种种的便利致使很多人对网络产生依赖性.那么,当电脑不能上网时,我们如何才能准确地判断电脑问题出在哪里?又如何能快捷地解决这故障? ...
- poj1220 (高精度任意进制转换)
http://poj.org/problem?id=1220 高精度任意进制转换 代码是从discuss里找到的,据说是maigo神牛写的. 超精简!! 我自己第一写的时候,还把n进制先转成10进制, ...
- Objective-C——判断对象等同性
无论我们使用什么语言,总是会出现需要判断两个对象是否相等的情况,OC当然也不例外.首先看一段代码: NSString *str1 = [[NSString alloc] initWithCString ...
- 使用FileSystemWatcher捕获系统文件状态
源代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...
- Angular初级入门
1:jquery :库 -一般是封装了一些方法 -我们去调用他的这些方法分 2:angular:框架 -框架是提供了一些规则或者模式 -我们是根据这一种规则或者模式去写代码 -然后接下来就由angul ...
- UNIX环境高级编程--#include "apue.h"
apue.h头文件为作者自己编写而非系统自带,故需要自行添加! 第一:打开网站 http://www.apuebook.com/第二:选择合适的版本(一共有三个版本,根据书的版本选择)下载源码sour ...