首页 > 其他分享 >html5中怎么实现多文件上传功能

html5中怎么实现多文件上传功能

时间:2023-12-25 15:00:13浏览次数:34  
标签:文件 java String request fileName html5 import new 上传

本篇文章为大家展示了html5中怎么实现多文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

主要用到的是<input>的multiple属性

代码如下:

<input type="file" name="multipleFileUpload" multiple />


下面是页面的详细代码:

代码如下:


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Solution 4-5: Sending multiple files</title>
</head>
<body>
<form id="myForm"
action="http://10.10.25.31:8080/myupload/UploadPhotoServlet" ENCTYPE="multipart/form-data" METHOD="POST">
<input type="file" name="multipleFileUpload" multiple /> <input
type="submit" value="提交"> <input type="reset" value="重设">
</form>
</body>
</html>


java后台的详细代码:

代码如下:


import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class UploadPhotoServlet
*/
public class UploadPhotoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public UploadPhotoServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request,response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
@SuppressWarnings("unchecked")
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String imagePath="c:\\uploadFile\\Image\\"+getEachDate()+"\\";//按日期生成文件夹
File uploadPath=new File(imagePath);
if(!uploadPath.exists()){
uploadPath.mkdirs();
}
File tmp=new File("c:\\tmp\\");
if(!tmp.exists()){
tmp.mkdirs();
}
DiskFileItemFactory factory=new DiskFileItemFactory ();//创建磁盘工厂
factory.setRepository(tmp);//设置文件缓存路径
factory.setSizeThreshold(10 * 1096 );//将文件保存在内存还是磁盘临时文件夹的默认临界值,值为10240,即10kb
ServletFileUpload sfu=new ServletFileUpload(factory);//创建处理工具
sfu.setSizeMax(10*1024*1024);//服务器端可以接收的最大文件大小,-1表示无上限
String fileName=null;
try {
List<FileItem> list=sfu.parseRequest(request);//解析
if(list.size()<1){
return;
}
for(int j=0;j<list.size();j++){
FileItem item=list.get(j);
fileName=item.getName();
if(fileName.equals("")){
request.getRequestDispatcher("/com/visualizerPhoto.jsp").forward(request, response);
return;
}
int pos=fileName.lastIndexOf(".");//取图片文件格式
if(pos>0){
Date date=new Date();
fileName=imagePath+date.getTime()+fileName.substring(pos);
}
System.out.println("item:"+item);
item.write(new File(fileName));//写到磁盘
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
// 13-11-15
public static String getEachDate() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 0);
String yesterday = new SimpleDateFormat("yyyy-MM-dd ").format(cal
.getTime());
String[] dates = yesterday.split("-");
String realDate = dates[0].substring(2, 4) + "-" + dates[1] + "-"
+ dates[2];
return realDate.trim();
}
}

上述内容就是html5中怎么实现多文件上传功能

 

参考文章:http://blog.ncmem.com/wordpress/2023/12/25/html5%e4%b8%ad%e6%80%8e%e4%b9%88%e5%ae%9e%e7%8e%b0%e5%a4%9a%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e5%8a%9f%e8%83%bd/

欢迎入群一起讨论

 

 

标签:文件,java,String,request,fileName,html5,import,new,上传
From: https://www.cnblogs.com/songsu/p/17926115.html

相关文章

  • SARscape导入哨兵1数据自动读取本地轨道文件
    电脑联网时,SARscape导入哨兵1数据时可自动从网上下载相应数据的轨道文件并在导入时使用。在导入后生成的.sml文件中查找ORBIT_FILE_NAME字段包含如下信息,说明导入时使用了自动下载的轨道文件并存放于临时路径中。最近,欧空局下载轨道文件的API发生了变化,SARscape中导入哨兵1数据......
  • Chrome浏览器下载文件提示:无法安全地下载
    一、问题描述:Chrome浏览器下载文件时提示:已阻止不安全的下载,需要点击“保留”才能下载文件。二、解决方法1:1.新版本的Chrome浏览器默认阻止了http文件下载,需要修改Chromeflag内容。2.步骤:1)在Chrome浏览器地址栏输入:chrome://flags/#treat-unsafe-downloads-as-active-content2)Ctrl......
  • 运维工程师面试题整理(挂载windows下的共享目录 查看http的并发请求数 tcpdump嗅探80端
    1.linux如何挂载windows下的共享目录mount.cifs//192.168.1.3/server/mnt/server-ouser=administrator,pass=123456linux下的server需要自己手动建一个,后面的user与pass是windows主机的账号和密码,注意空格和逗号2.查看http的并发请求数与其TCP连接状态netstat-n|awk'/^......
  • HTML5 进阶系列:文件上传下载
    前言HTML5中提供的文件API在前端中有着丰富的应用,上传、下载、读取内容等在日常的交互中很常见。而且在各个浏览器的兼容也比较好,包括移动端,除了IE只支持IE10以上的版本。想要更好地掌握好操作文件的功能,先要熟悉每个API。FileList对象和file对象HTML中的input[type=......
  • Web.Config文件详解
    一).Web.Config是以XML文件规范存储,配置文件分为以下格式    1.配置节处理程序声明      特点:位于配置文件的顶部,包含在<configSections>标志中。    2.特定应用程序配置      特点:  位于<appSetting>中。可以定义应用程序的全局常量设置等信息.    ......
  • linux文件编辑
    1.VIM基本概述1.什么是VIM?vi和vim是Linux下的一个文本编辑工具。(可以理解为windows的记事本,或word文档)2.为什么要使用VIM?因为Linux系统一切皆为文件,而我们工作最多的就是修改某个服务的配置(其实就是修改文件内容)。也就是说如果没有vi/vim,我们很多工作都无法完成。PS:......
  • 控制台打印时显示的文件来源没有显示.vue文件,而是出现了一堆index.js??clonedRuleSet-
    控制台打印时显示的文件来源没有显示.vue文件,而是出现了一堆index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-optio…,看不出来打印的语句来自哪个vue组件检查发现edge打印显示正常,谷歌打印是以上这样的,谷歌设置一下配置 ......
  • java读取yaml文件并转化成json格式数据
    一、在maven项目中导入依赖<!--yaml文件转化成json格式--><dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId><version>1.29</version></de......
  • 推荐给程序员的chrome扩展插件:gitzip for github下载单个GitHub仓库中的文件;json-hand
    推荐清单gitzipforgithub下载单个GitHub仓库中的文件双击文件,勾选文件前面的复选框,可以一次性选择多个文件json-handle格式化json......
  • 揭秘JVS低代码平台:如何通过行内按钮逻辑引擎配置,实现高效文件模板替换下载
    在当今数字化的时代,各行各业都在寻求更高效、更便捷的工作方式。对于业务应用来说,将线下操作转化为线上流程是提升效率的关键。在业务应用中通常需要把行数据某字段赋值到一个文件模板上,用户下载该文件模板用于盖章或签字等线下操作。这样的场景在JVS低代码平台上可以通过行内按钮......