Strust2上传Xls文件 数据超过200条就找不到action

问题描述

Strust2上传Xls文件 数据超过200条就找不到action

Strust2上传XLS文件的时候 文件中的数据超过200条就找不到action
我在本地限制了一下 但是到了服务器还是不找不到action

package com.actions;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FileUtils;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.struts2.ServletActionContext;
import com.beans.TjbryyBean;
import com.opensymphony.xwork2.ActionContext;
import com.util.ConnUtil;

/**

  • 团体导入
  • @author Administrator
  • */
    public class SaveXlsFileAction {
    private File[] newsfile;
    private String gzdw;
    private String[] newsfileFileName;
    ResultSet rs = null;
    PreparedStatement pst = null;
    TjbryyBean tb = new TjbryyBean();

    public TjbryyBean getTb() {
    return this.tb;
    }

    public void setTb(TjbryyBean tb) {
    this.tb = tb;
    }

    public String tjttDr() {
    String path1 = "";
    HttpServletRequest request = ServletActionContext.getRequest();
    for (int i = 0; i < this.newsfile.length; i++) {
    File zl = this.newsfile[i];
    String realname = this.newsfileFileName[i];
    if ((zl != null) && (zl.exists()) && (zl.length() > 0L)) {
    SimpleDateFormat f = new SimpleDateFormat("yyyyMMddhhmmss");
    String time = f.format(Calendar.getInstance().getTime());
    String str = realname.substring(realname.lastIndexOf("."),
    realname.length());

            File destFile = new File(ServletActionContext
                    .getServletContext().getRealPath(
                            "\upload\" + this.gzdw + "\" + time + str));
            path1 = path1 + "\upload\" + this.gzdw + "\" + time + str;
            this.tb = new TjbryyBean();
            Workbook book = null;
            int totalRow = 0;
            String errorRows = "";
            Connection conn = new ConnUtil().getConn();
            String sql = "select harm_name from zy_harm";
            try {
                this.pst = conn.prepareStatement(sql);
                this.rs = this.pst.executeQuery();
                List<String> list = new ArrayList();
                while (this.rs.next()) {
                    list.add(this.rs.getString(1));
                }
                InputStream is = new FileInputStream(zl);
                book = WorkbookFactory.create(is);
                Sheet hssfSheet = book.getSheetAt(0);
                totalRow = hssfSheet.getLastRowNum();
                if(totalRow>200){
                    request.setAttribute("errors", "为了保证文件传输速度数据,数据量最大为200条!超过请分多次上传!");
                    return "success";
                }
                int num=0;
                for (int ii = 1; ii <= hssfSheet.getLastRowNum(); ii++) {
                    num=ii;
                    Row row = hssfSheet.getRow(ii);
                    if (row != null) {
                        if (row.getCell(5) != null) {
                            if ("职业".equals(row.getCell(5).getStringCellValue())) {
                                System.out.println(" 姓名"+row.getCell(0));
                                String jhyy = "";
                                if ((row.getCell(3) != null)&& (row.getCell(3).getCellType() == 1)) {
                                    jhyy = row.getCell(3).getStringCellValue();
                                    if (!checkJhyy(jhyy, list)) {
                                        errorRows = errorRows + (ii + 1)+ "、";
                                    }
                                }
                            }
                        }else{
                            request.setAttribute("zt", "表格中第 "+ii+"行 ,第5列未获取到数据!请检查!");
                        }
                    }
                }
                if (!"".equals(errorRows)) {
                    request.setAttribute("errors", "表格中第 " + errorRows
                            + " 行中的危害因素名称与数据库中不相符,无法保存表格。"
                            + "\n请重新填写标准的危害因素名称!\各危害因素之间请用中文输入法下的顿号隔开!");
                } else {
                    FileUtils.copyFile(zl, destFile);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    return "success";
    

    }

    public boolean checkJhyy(String jhyy, List list) {
    boolean flag = true;
    boolean temp = true;

    String[] jhyys = jhyy.split("、");
    for (int i = 0; i < jhyys.length; i++) {
        for (int j = 0; j < list.size(); j++) {
            if (jhyys[i].equals(list.get(j))) {
                temp = true;
                break;
            }
            temp = false;
        }
        if (!temp) {
            break;
        }
    }
    if (!temp) {
        flag = false;
    }
    return flag;
    

    }

    public File[] getNewsfile() {
    return this.newsfile;
    }

    public void setNewsfile(File[] newsfile) {
    this.newsfile = newsfile;
    }

    public String[] getNewsfileFileName() {
    return this.newsfileFileName;
    }

    public void setNewsfileFileName(String[] newsfileFileName) {
    this.newsfileFileName = newsfileFileName;
    }

    public String getGzdw() {
    return this.gzdw;
    }

    public void setGzdw(String gzdw) {
    this.gzdw = gzdw;
    }
    }

解决方案

把tomcat的超时设置和最大上传大小修改下。

时间: 2024-10-31 14:17:17

Strust2上传Xls文件 数据超过200条就找不到action的相关文章

strus2 上传xls文件 当文件中的数据超过200条的时候就找不到Action

问题描述 strus2 上传xls文件 当文件中的数据超过200条的时候就找不到Action 下面是代码 package com.actions; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; impor

mvc中使用uploadify 无法上传大文件 提示超过长度

问题描述 mvc中使用uploadify 无法上传大文件 提示超过长度 我使用uploadify上传 修改的配置文件可是还是无法上传超过4M的文件 view代码 <link href="~/Scripts/jquery.uploadify-v2.1.0/default.css" rel="stylesheet" type="text/css" /> <link href="~/Scripts/jquery.upload

link中制作一个网盘软件,请问codefirst如何判断当前用户上传的文件是否超过2GB

问题描述 link中制作一个网盘软件,请问codefirst如何判断当前用户上传的文件是否超过2GB link中制作一个网盘软件,请问codefirst如何判断当前用户上传的文件是否超过2GB 解决方案 客户端与服务器做协议,上传内容前先将文件信息上传到服务器.其中,文件信息包含文件名.文件大小等信息.这样服务就可以判断出用户上传的文件是否超出限制的大小.

PHP上传Excel文件导入数据到MySQL数据库示例_php实例

最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开发框架.可在ThinkPHP官网下载. PHPExcel:Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可在CodePlex官网下载.. 1.设计MySQL数据库product 创建product数据库 CREATE DATABASE product D

json-图片上传返回JSON数据,前台弹出下载保存文件框, 文件里面是JSON数据,页面上没显示图片怎么解决

问题描述 图片上传返回JSON数据,前台弹出下载保存文件框, 文件里面是JSON数据,页面上没显示图片怎么解决 10C @RequestMapping(value = ""kinduploadfile"" method = RequestMethod.POST) public @ResponseBody JSONObject KindUploadFile(HttpServletRequest requestHttpServletResponse response)

从客户端取得上传的文件,然后将数据保存到ACCESS数据库

问题描述 从客户端取得上传的文件,然后将数据保存到ACCESS数据库谁做过??? 解决方案 解决方案二:那你用流的形式写入数据库就可以了.其中,fullname是获取的上传文件的路径.FileStreamfs=File.OpenRead(this.fullname);content=newbyte[fs.Length];fs.Read(content,0,content.Length);fs.Close();解决方案三:能给个详细点的列子或者代码??解决方案四:其中,fullname是获取的上传

如何判断文件上传以及相关数据插入数据库同时成功

问题描述 我想实现保证文件上传和相关数据(即文件信息,如文件名,文件大小,文件路径等)插入数据库要同时成功.避免只有文件上传成功了或数据插入数据库中的一种情况实现.要实现要么就两者都全部操作成功了.要么就全部没有成功(同时报错).如何实现呢?谢谢 解决方案 解决方案二:1.首先文件保存的SAVE方法放在数据库保存后面执行2.建立一个事务,首先进行数据库的保存,但是不要commit:然后save文件,当成功save后就commit,否则就会滚解决方案三:设置一个变量数据保存成功赋值1不成功2再判断

在A服务器的客户端页面 上传视频文件及数据到B服务器端的返回一个数

问题描述 需求:在A服务器的客户端页面上传视频文件及数据到B服务器端的返回一个数分析:现在我在A服务器有一个上传的页面,用户上传视频文件到B服务器,可以一边上传,用户一边填写视频信息,上传的信息到B服务器.然后再从B服务器返回视频ID到A服务器,A服务器根据视频ID信息查询视频的一些信息添加到A服务器的数据看里.如新浪播客土豆等一些网站.有没有做过这方面的人.我想问下实现这个需求的解决方法.如果你是一个善于思考的人就发表下自己的意见.

Dedecms解决你没指定要上传的文件或文件大小超过限制的问题

今天在使用Dedecms进行本地上传缩略图的时候,突然出现你没指定要上传的文件或文件大小超过限制的故障!感觉很是奇怪呀!一直用得好好的,为何突然出现这样的问题呢? 查找原因,发现来原php.ini文件的设置引起的. 立即动手进行解决: 打开php的配置文件php.ini,通过搜索找到以下几项: ;upload_tmp_dir = 注释掉之后我们改为: upload_tmp_dir = d:\php\tmp 注意tmp文件需要有写入和修改权限 另外php.ini中还有两个参数: pose_max_