`

jsp多附件上传

 
阅读更多



 点击(+)新增一个文件框,(-)删除一个文件框。

<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;
    }

}

 --摘自 困难生申请前台

  • 大小: 9.5 KB
分享到:
评论

相关推荐

    JSP多附件上传系统

    【JSP多附件上传系统】是一个基于Java JSP技术实现的Web应用,旨在提供一个能够支持用户上传多个文件的功能。在传统的Web开发中,单个文件上传是常见的操作,但随着互联网应用的发展,多文件上传的需求越来越普遍,...

    jsp附件上传模块,JS实现文件上传功能

    今天整理了一个jsp附件上传模块,结合jquery Uploadify插件,可以一次性上传多个附件,而且自带上传进度功能,非常漂亮的界面和强大的功能。 Uploadify插件是由国外开发的一个jquery插件,功能非常的齐全,包括同时...

    多附件上传

    单按钮实现多附件上传(非异步,非flash,适用IE8)

    jsp多附件上传commons-fileupload-1.1.jar

    在Java Web开发中,JSP(JavaServer Pages)经常用于创建动态网页,而处理用户上传的多文件是一项常见的任务。本教程将详细讲解如何利用Apache Commons FileUpload库实现在JSP中实现多文件上传功能。Apache Commons ...

    JSP多文件上传(同时上传)

    这个功能允许用户一次性选择并上传多个文件,提高了用户体验,减少了多次点击和等待时间。 实现JSP多文件上传,我们需要了解以下几个关键知识点: 1. **HTML表单与多文件选择**: 在HTML中,`&lt;input type="file"&gt;...

    jsp实现附件上传功能源码-基础源码

    "jsp实现附件上传功能源码-基础源码" 这个标题指出,我们关注的是一个使用JSP技术实现的附件上传功能。JSP(JavaServer Pages)是Java平台上的一种动态网页技术,它允许开发人员在HTML页面中嵌入Java代码,以实现...

    java、jsp实现附件上传资料

    【Java和JSP实现附件上传】在Web开发中,文件上传功能是非常常见且重要的一个环节。Java和JSP提供了一套完整的解决方案来处理文件上传的需求。以下是对标题和描述中涉及知识点的详细说明: 1. **文件上传组件**: 在...

    jsp 上传附件,类似163添加附件界面,有上传进度显示

    通过以上步骤,我们可以构建一个类似于163邮箱附件上传的功能,其中包括文件选择、AJAX异步上传、服务器端处理、进度反馈以及必要的安全措施。在实际开发中,你可能还会遇到各种浏览器兼容性问题,因此需要根据实际...

    126/163网盘附件上传jsp

    标题中的“126/163网盘附件上传jsp”指的是使用JSP(JavaServer Pages)技术实现的126和163邮箱网盘的附件上传功能。126和163是中国知名的电子邮件服务提供商,它们提供的网盘服务允许用户存储和分享文件。在这一...

    jsp附件上传与下载的小例子

    在这个"jsp附件上传与下载的小例子"中,我们将深入探讨如何使用JSP实现文件的上传与下载功能。这个小例子可能涉及了两个关键库:jspupload和jspsmartupload。 jspupload是一个早期的开源库,专门用于处理JSP文件...

    jsp+sql05附件上传与下载

    在IT行业中,文件上传与下载是常见的功能,特别...综上所述,"jsp+sql05 附件上传与下载"是一个结合了前端交互、后端处理和数据库操作的综合实践,涵盖了Web开发中的多个关键环节,是理解Web应用中文件操作的重要案例。

    基于jsp的文件上传下载

    "基于jsp的文件上传下载"是Web应用程序中的常见需求,涉及到客户端与服务器之间的数据交互。本项目详细阐述了如何利用JSP实现文件的上传和下载功能。 首先,文件上传涉及的主要技术有HTML表单、Servlet和多部分请求...

    jsp界面上传附件到服务器的实例

    一个简单的javaWeb项目,在前台jsp界面上传附件 亲测可以实现。如有问题欢迎讨论

    jsp版的kindeditor附件上传组件

    ### jsp版KindEditor附件上传组件详解 #### 一、概述 在当今互联网技术日新月异的时代,富文本编辑器成为了网站开发中不可或缺的一部分。其中,KindEditor是一款功能强大且易于使用的富文本编辑器,它支持多种...

    uploadify jsp上传附件火狐浏览器不兼容丢失session问题

    uploadify jsp上传附件火狐浏览器不兼容丢失session问题,Uploadify v3.2

    JSP版的完善KindEditor在线编辑器(带附件上传与图片按日期分类管理功能)

    JSP版的完善KindEditor在线编辑器(带附件上传与图片按日期分类管理功能) 1.集合了日期、时间、在线预览和特殊字符插件,采用3.0皮肤; 2.将图片上传与管理的JSP页面改写成SERVLET,同时去除JSON包; 3.添加图片压缩...

    纯jsp实现文件上传(页面无刷新,表单数据可连续填写最后上传文件)

    本教程将详细解析如何使用纯JSP技术实现一个不刷新页面、允许用户连续填写表单数据并最终上传文件的功能。这一特性对于提高用户体验至关重要,因为它使得用户可以在同一页面上完成所有操作,无需频繁跳转或刷新页面...

    jsp文件的上传和下载

    在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...

    kindeditor jsp 上传附件版

    【KindEditor JSP 上传附件版】是一款专为KindEditor在线编辑器设计的JSP实现的附件上传功能。KindEditor是一款流行的开源富文本编辑器,它提供了丰富的API和多样的功能,使得用户在网页上可以方便地进行文字编辑、...

    纯jsp文件多文件上传例子

    多文件上传功能是许多Web应用程序中的常见需求,它允许用户一次性上传多个文件,如图片、文档等。 首先,我们需要了解基本的HTML表单结构来接收用户选择的文件。在JSP页面中,可以创建一个`&lt;form&gt;`标签,设置`...

Global site tag (gtag.js) - Google Analytics