Java 程序式的上传

1.首先我们在前端使用上传空间,使用的是jquery的uploadify需要引入js可以参照uploadify的操作。

需要引入的文件:

<script type="text/javascript" src="${pageContext.request.contextPath}/lib/jquery-1.8.3.min.js"></script>

<script type="text/javascript" src="${pageContext.request.contextPath}/js/Uploadify/jquery.uploadify.js"></script>

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/Uploadify/uploadify.css" />

js中加载:

  $("#uploadify").uploadify({
        'auto': true,//选择文件后是否自动上传
        'buttonText': 'excel添加',
        'swf': '${pageContext.request.contextPath}/js/Uploadify/uploadify.swf',
        'uploader': '${pageContext.request.contextPath}/TsResource/uploadExcel.koala',
        'cancelImg': '${pageContext.request.contextPath}/js/Uploadify/uploadify-cancel.png',
        'width': '95',         
        'height': '24',
        'method':'post',
        'multi': false,
        'fileTypeDesc': '支持的格式:',
        'fileTypeExts': '*.xls;*.xlsx;',
        'progressData':'percentage',
        //检测FLASH失败调用  
        'onFallback': function () {
            alert("您未安装FLASH控件!请安装FLASH控件后再试。");
        },
        //上传到服务器,服务器返回相应信息到data里  
        'onUploadSuccess': function (file, data, response) {
               dialog.close();
          alert(data);
     
        },
        'onUploadStart': function (file) {
        shouUploadInfo()
     }
    });

具体详细的操作控制参照uploadify的操作介绍和文档。

针对于SpringMVC 在servlet配置文件中加入该类:

<bean id="multipartResolver" name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
        <!-- set the max upload size100MB -->  
        <property name="maxUploadSize">  
            <value>1048576</value>  
        </property>  
        <property name="maxInMemorySize">  
            <value>4096</value>  
        </property>  
    </bean>

上传的大小为1M

由于Post提交时,一个包含文件上传的Form会以multipart/form-data请求发送给服务器,必须明确告诉DispatcherServlet如何处理MultipartRequest。

这样一旦某个Request是一个MultipartRequest,它就会首先被MultipartResolver处理,然后再转发相应的Controller。 

@ResponseBody
@Transactional
@RequestMapping(value = "/uploadExcel", method = RequestMethod.POST)
public String UploadImg(HttpServletRequest request, HttpServletResponse response) 
throws Exception {
 //文件处理器
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
//文件列表
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
//文件的保存路径
String ctxPath = "C:/upload";
String errorMessage;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
String ymd = sdf.format(new Date());
  //创建文件夹
File file = new File(ctxPath);
if (!file.exists()) {
file.mkdirs();
}
String fileName = null;
String path = null;
String returnpath = null;
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile mf = entity.getValue();
// 上传文件名
fileName = mf.getOriginalFilename();
  //根据时间加密
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String uuid = UUID.randomUUID().toString().replaceAll("\\-", "");// 返回一个随机UUID。
//获取文件格式
String suffix = fileName.indexOf(".") != -1
? fileName.substring(fileName.lastIndexOf("."), fileName.length()) : null;
// 构成新文件名。
String newFileName = uuid + (suffix != null ? suffix : "");


File uploadFile = new File(ctxPath + "/"+newFileName);
try {
//读取文件内容
FileCopyUtils.copy(mf.getBytes(), uploadFile);
path = "../../excel/" + newFileName;
returnpath = "upload/" + newFileName;
 Workbook workbook = null;
//开始获取上传文件
 System.out.println(suffix);
if(suffix.equals(".xls")){
workbook = new HSSFWorkbook(new FileInputStream(new File(ctxPath+"/"+newFileName)));
}else if(suffix.equals(".xlsx")){
/*workbook = new XSSFWorkbook(new FileInputStream(new File(ctxPath+"/"+newFileName)));*/
}else{
 return "请核查您的Excel内容格式!";
}

Sheet sheet=null;
System.out.println(workbook.getNumberOfSheets());
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {//获取每个S heet表
 sheet=workbook.getSheetAt(i);
System.out.println(sheet.getPhysicalNumberOfRows());
            for (int j = 1; j < sheet.getPhysicalNumberOfRows(); j++) {//获取每行
               Row row=sheet.getRow(j);
               TsResourceDTO tsResourceDTO=new TsResourceDTO();
               tsResourceDTO.setDocTypeId((int)row.getCell( 0).getNumericCellValue());
               tsResourceDTO.setDocType(row.getCell( 1).getStringCellValue());
               tsResourceDTO.setDispatchName(row.getCell( 2).getStringCellValue());
               tsResourceDTO.setDispatcPperiods(row.getCell( 3).getStringCellValue());
               tsResourceDTO.setAllPperiods(row.getCell( 4).getStringCellValue());
               tsResourceDTO.setDispatcNumber(row.getCell( 5).getStringCellValue());
               tsResourceDTO.setConsultMember(row.getCell( 6).getStringCellValue());
               tsResourceDTO.setDispatcTime(row.getCell( 7).getDateCellValue());
               tsResourceDTO.setExpertGroup(row.getCell( 8).getStringCellValue());
               tsResourceDTO.setTaskGuide(row.getCell( 9).getStringCellValue());
               tsResourceDTO.setGroupLeader(row.getCell( 10).getStringCellValue());
               tsResourceDTO.setDeputyLeader(row.getCell( 11).getStringCellValue());
               tsResourceDTO.setGroupMembers(row.getCell( 12).getStringCellValue());
               tsResourceDTO.setCounselor(row.getCell( 13).getStringCellValue());
               tsResourceDTO.setDocNumber((int)row.getCell( 14).getNumericCellValue());
               tsResourceFacade.creatTsResource(tsResourceDTO);
           }  
 }
} catch (Exception e) {
returnpath= "请核查您的Excel内容格式!";
e.printStackTrace();

}
}
return returnpath;
}

为整体过程,按需取程序。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值