点击(+)新增一个文件框,(-)删除一个文件框。
<form name="form1" method="post" action="${pageContext.request.contextPath}/knsservlet" enctype="multipart/form-data" onsubmit="return onVail(this);"> <table class="tableCont" id="table"> <tr> <th>上传附件:</th> <td colspan="3"> <input type="file" name="file"/> <img src="${pageContext.request.contextPath}/images/plus.jpg" id="addImg" width="20" height="20"/> </td> </tr> </table>
$(document).ready(function () { var maxInputs = 4;//最多新增4个input,一共最多5个 var tableId = $("#table"); var addButton = $("#addImg"); var x = tableId.length; $(addButton).click(function (e) { var fjs = document.getElementsByName("file"); var size = 0; for(var i = 0;i < fjs.length; i++) { if(fjs[i].files.length > 0){ size += fjs[i].files[0].size; } } if(size > 20480000){ alert("附件总大小已超出20M,不可再添加"); return false; } if (x <= maxInputs) { var content = "<tr><th></th><td>"; content += "<input type='file' name='file'/>"; content += "<img src='${pageContext.request.contextPath}/images/minus.jpg' class='removeclass' width='20' height='20'/>"; content += "</td></tr>"; $("#table").append(content); x++; } else { alert("最多只能上传五个附件"); } return false; }); //删除当前行<tr> $("body").on("click", ".removeclass", function (e) { if (x > 1) { $(this).parent().parent().remove(); x--; } return false; }); });
package com.caac.servlet; import com.caac.bean.DcwjSubmitYhxxBean; import com.caac.bean.FjBean; import com.caac.bean.SqbBean; import com.caac.dcwjutils.KnssqBean; import com.google.gson.Gson; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.servlet.ServletFileUpload; @WebServlet(name = "KnsServlet", urlPatterns = { "/knsservlet" }) public class KnsServlet extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=UTF-8"; public void init(ServletConfig config) throws ServletException { super.init(config); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); request.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); SqbBean bean = this.InputStreamTOBean(request); //获取页面form表单数据以及上传附件 KnssqBean kns = new KnssqBean(); kns.saveData(bean); out.print("<script language=javascript charset=\"utf-8\">alert('提交成功');window.close();</script>"); out.close(); } /** * 获取页面form表单数据以及上传附件 * */ private SqbBean InputStreamTOBean(HttpServletRequest request){ List<FjBean> fjList = new ArrayList<FjBean>(); //附件Bean SqbBean bean = new SqbBean(); KnssqBean kns = new KnssqBean(); //把上传在服务器上的路劲转保存到固定文件夹中; //因为当服务器关闭或停止时,存放在服务器上的文件会丢失 String xtglPath = kns.findFilePath(); //xtgl_xtsz(系统设置表)中保存的文件夹路径 String savePath = xtglPath + File.separator + "KNS_SQ"; //上传附件保存的路径 File saveDir = new File(savePath); // 如果目录不存在,就创建目录 if (!saveDir.exists()) { saveDir.mkdir(); } // 创建文件上传核心类 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload sfu = new ServletFileUpload(factory); //设置编码 sfu.setHeaderEncoding("UTF-8"); // 设置上传的单个文件的最大字节数为20M sfu.setFileSizeMax(1024 * 1024 * 20); //设置整个表单的最大字节数为50M sfu.setSizeMax(1024 * 1024 * 50); try { // 处理表单请求 List<FileItem> itemList = sfu.parseRequest(request); for (FileItem fileItem : itemList) { // 对应表单中的控件的name String fieldName = fileItem.getFieldName(); // 如果是普通表单控件 if (fileItem.isFormField()) { String value = fileItem.getString().trim(); //重新编码,解决乱码 value = new String(value.getBytes("ISO-8859-1"), "UTF-8"); if ("xm".equals(fieldName)) { bean.setXm(value); } if ("sfzh".equals(fieldName)) { bean.setSfzh(value); } if ("jtrjnsr".equals(fieldName)) { bean.setJtrjnsr(value); } if ("knslx".equals(fieldName)) { bean.setKnslx(value); } if ("sqyy".equals(fieldName)) { bean.setSqyy(value); } } else { // 获得文件大小 Long size = fileItem.getSize(); if (size > 0) { //表示存在附件 FjBean fjBean = new FjBean(); fjBean.setExitFj(true); //存在附件 // 获得文件名 String itemName = fileItem.getName(); //上传的文件加入时间戳 int lastD = itemName.lastIndexOf("."); String oldName = itemName.substring(0, lastD); //旧的附件名 String fileLx = itemName.substring(lastD + 1); //附件类型 String curTime = new SimpleDateFormat("HHmmss").format(new Date()) + ""; //文件名格式:时间戳.后缀名 String fileName = oldName + "_" + curTime + "." + fileLx; //新的附件名 fjBean.setFjmc(itemName); //附件名称 fjBean.setFjlx(fileLx); //附件类型 fjBean.setWjdx(size.intValue()); //文件大小 fjBean.setFjpath(File.separator + "KNS_SQ" + File.separator + fileName); //附件路径 //将文件保存到指定的路径 File file = new File(savePath, fileName); fileItem.write(file); //保存附件到服务器 fjBean.setUploadFile(file); //上传的附件 fjList.add(fjBean); } } } } catch (UnsupportedEncodingException uee) { uee.printStackTrace(); } catch (FileUploadException fue) { fue.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } bean.setSqrq(new SimpleDateFormat("yyyy-MM-dd").format(new Date())); bean.setXnzj(kns.getDqxn("Xnzj")); bean.setFl(1); //自己申请 bean.setJtdf(kns.getJtdf(bean.getSfzh())); bean.setXh(kns.getXh(bean.getSfzh())); bean.setSfcx(0); //默认0为没有撤销 bean.setSftj("1"); //默认1为提交啦的数据 bean.setZzpdknslx(bean.getKnslx()); //默认为申请时的贫困生类型 bean.setFjList(fjList); return bean; } }
--摘自 困难生申请前台
相关推荐
【JSP多附件上传系统】是一个基于Java JSP技术实现的Web应用,旨在提供一个能够支持用户上传多个文件的功能。在传统的Web开发中,单个文件上传是常见的操作,但随着互联网应用的发展,多文件上传的需求越来越普遍,...
今天整理了一个jsp附件上传模块,结合jquery Uploadify插件,可以一次性上传多个附件,而且自带上传进度功能,非常漂亮的界面和强大的功能。 Uploadify插件是由国外开发的一个jquery插件,功能非常的齐全,包括同时...
单按钮实现多附件上传(非异步,非flash,适用IE8)
在Java Web开发中,JSP(JavaServer Pages)经常用于创建动态网页,而处理用户上传的多文件是一项常见的任务。本教程将详细讲解如何利用Apache Commons FileUpload库实现在JSP中实现多文件上传功能。Apache Commons ...
这个功能允许用户一次性选择并上传多个文件,提高了用户体验,减少了多次点击和等待时间。 实现JSP多文件上传,我们需要了解以下几个关键知识点: 1. **HTML表单与多文件选择**: 在HTML中,`<input type="file">...
"jsp实现附件上传功能源码-基础源码" 这个标题指出,我们关注的是一个使用JSP技术实现的附件上传功能。JSP(JavaServer Pages)是Java平台上的一种动态网页技术,它允许开发人员在HTML页面中嵌入Java代码,以实现...
【Java和JSP实现附件上传】在Web开发中,文件上传功能是非常常见且重要的一个环节。Java和JSP提供了一套完整的解决方案来处理文件上传的需求。以下是对标题和描述中涉及知识点的详细说明: 1. **文件上传组件**: 在...
通过以上步骤,我们可以构建一个类似于163邮箱附件上传的功能,其中包括文件选择、AJAX异步上传、服务器端处理、进度反馈以及必要的安全措施。在实际开发中,你可能还会遇到各种浏览器兼容性问题,因此需要根据实际...
标题中的“126/163网盘附件上传jsp”指的是使用JSP(JavaServer Pages)技术实现的126和163邮箱网盘的附件上传功能。126和163是中国知名的电子邮件服务提供商,它们提供的网盘服务允许用户存储和分享文件。在这一...
在这个"jsp附件上传与下载的小例子"中,我们将深入探讨如何使用JSP实现文件的上传与下载功能。这个小例子可能涉及了两个关键库:jspupload和jspsmartupload。 jspupload是一个早期的开源库,专门用于处理JSP文件...
自己给修改了一下,做出了一个jsp版的多文件上传功能,客户需要进行多个文件上传:本程序就两个jsp文件,jar包自行下载,tepl.jsp运行后: 点击【增加】后,系统将增加一行上传文件的选择 点击【删除】后,系统...
在IT行业中,文件上传与下载是常见的功能,特别...综上所述,"jsp+sql05 附件上传与下载"是一个结合了前端交互、后端处理和数据库操作的综合实践,涵盖了Web开发中的多个关键环节,是理解Web应用中文件操作的重要案例。
"基于jsp的文件上传下载"是Web应用程序中的常见需求,涉及到客户端与服务器之间的数据交互。本项目详细阐述了如何利用JSP实现文件的上传和下载功能。 首先,文件上传涉及的主要技术有HTML表单、Servlet和多部分请求...
一个简单的javaWeb项目,在前台jsp界面上传附件 亲测可以实现。如有问题欢迎讨论
### jsp版KindEditor附件上传组件详解 #### 一、概述 在当今互联网技术日新月异的时代,富文本编辑器成为了网站开发中不可或缺的一部分。其中,KindEditor是一款功能强大且易于使用的富文本编辑器,它支持多种...
uploadify jsp上传附件火狐浏览器不兼容丢失session问题,Uploadify v3.2
JSP版的完善KindEditor在线编辑器(带附件上传与图片按日期分类管理功能) 1.集合了日期、时间、在线预览和特殊字符插件,采用3.0皮肤; 2.将图片上传与管理的JSP页面改写成SERVLET,同时去除JSON包; 3.添加图片压缩...
本教程将详细解析如何使用纯JSP技术实现一个不刷新页面、允许用户连续填写表单数据并最终上传文件的功能。这一特性对于提高用户体验至关重要,因为它使得用户可以在同一页面上完成所有操作,无需频繁跳转或刷新页面...
在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...
【KindEditor JSP 上传附件版】是一款专为KindEditor在线编辑器设计的JSP实现的附件上传功能。KindEditor是一款流行的开源富文本编辑器,它提供了丰富的API和多样的功能,使得用户在网页上可以方便地进行文字编辑、...