文件上传入库方式1
来源:互联网 发布:供应链网络优化 编辑:程序博客网 时间:2024/05/27 21:04
直接上代码
jsp 代码
<!-- 创建窗口 --><div id="dlg" class="easyui-dialog" style="width:380px;height:280px;padding:10px 20px"closed="true" buttons="#dlg-buttons"><form id="fm" method="post" enctype="multipart/form-data" novalidate><div class="fitem"><label>渠道:</label><input id="group_code" class="easyui-combobox" name="channelId" panelHeight="auto" style="width:200px" data-options="valueField : 'channelId',textField : 'channelName',url : '/task/loadOption.html'"></div><div class="fitem"><label>后台文件导入:</label>(支持xls,csv格式文件)<input name="file" class="easyui-filebox" style="width:200px"data-options="prompt:'请选择文件...'"></div><div class="fitem"><label>网关文件导入:</label>(支持xls,csv格式文件)<input name="bankFile" class="easyui-filebox" style="width:200px"data-options="prompt:'请选择文件...'"></div></form></div><div id="dlg-buttons"><a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="saveTask()" style="width:90px">保存</a><a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')" style="width:90px">取消</a></div><a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newTask()">创建</a>
js.代码
var url;function newTask(){ $('#dlg').dialog('open').dialog('center').dialog('setTitle','新增'); $('#fm').form('clear'); url = '/taskManager/save.html';}/** * 保存 */function saveTask(){$('#fm').form('submit' , { url : '/taskManager/save.html', onSubmit: function(){ }, success : function(data){ $.messager.progress('close'); var data = eval('('+data+')'); if (data && data.success){ $.messager.show({ title: '成功信息', msg: data.msg }); $('#dlg').dialog('close'); $('#dg').datagrid('reload'); } else { $.messager.show({ title: '失败信息', msg: data.msg }); $('#dlg').dialog('close'); $('#dg').datagrid('reload'); } } });var win = $.messager.progress({ title:'请稍后', msg:'正在上传数据...' });}
后台taskManager:controller层
参数标识
String channelId 渠道id String dateStart,起始时间String dateEnd 结束时间
@RequestMapping("/save" )@ResponseBodypublic Result save(//@RequestParam(value ="file", required = true) MultipartFile file1,//@RequestParam(value ="bankFile", required = true) MultipartFile file2,HttpServletRequest request0,String channelId,String dateStart,String dateEnd ){try{TaskRequest request = new TaskRequest(); MultipartHttpServletRequest multipartRequest = WebUtils.getNativeRequest(request0, MultipartHttpServletRequest.class); List<MultipartFile> multipartFiles = multipartRequest.getFiles("file"); List<MultipartFile> bank_multipartFiles = multipartRequest.getFiles("bankFile");if(CollectionUtils.isNotEmpty(multipartFiles) && CollectionUtils.isNotEmpty(bank_multipartFiles)){//1 文件保存String[] filePaths = uploadFile(multipartFiles.get(0),bank_multipartFiles.get(0));//2 持久化 task和文件路径 request.setChannelId(Integer.valueOf(multipartRequest.getParameter("channelId")));request.setStatisticData("0");request.setStatus("50");request.setChannelId(Integer.valueOf(channelId));request.setChargeFilePath(filePaths[0]);request.setBankFilePath(filePaths[1]);request.setChargeFileName(filePaths[2]);request.setBankFileName(filePaths[3]);String queryCondition=dateStart+"/"+dateEnd;if(StringUtils.isBlank(dateEnd)||StringUtils.isBlank(dateStart)){SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String str=sdf.format(Calendar.getInstance().getTime());queryCondition=str+"/"+str;}request.setQueryCondition(queryCondition);taskService.save(DatasoureFlagEnum.DATA_R_CASH.getCode(),request);log.info("新增任务成功");return Result.success("新增任务成功",null);}else{return Result.error("缺少必要的文件");}}catch(Exception e){log.error("新增任务失败",e);return Result.error("创建任务时候异常:"+e.getMessage());}}
private String[] uploadFile(MultipartFile file1, MultipartFile file2) throws Exception {if (null == file1 || file1.isEmpty()|| null ==file2 || file2.isEmpty()) { throw new Exception(""); } if (!this.validateFile(file1, FileSuffixEnum.XLS, FileSuffixEnum.XLSX, FileSuffixEnum.CSV)) { throw new Exception("文件需为 xls, xlsx, cvs类型"); } if (!this.validateFile(file2, FileSuffixEnum.XLS, FileSuffixEnum.XLSX, FileSuffixEnum.CSV)) { throw new Exception("文件需为 xls, xlsx, cvs类型"); } // 文件大小限制:不能超过3M if (Long.compare(file1.getSize(), EXCEL_SIZE_LIMIT) > 0) { throw new Exception("文件大小不能超过3M!"); } //获取文件名 String origFileName = file1.getOriginalFilename();//起始日期 String dataStr = DateUtil.getCurDate();String chargeFileName=origFileName+"("+dataStr+")";String fileName = UUID.randomUUID().toString().replaceAll("-", "");fileName = fileName + origFileName.substring(origFileName.lastIndexOf('.'), origFileName.length());String filePath1 = batchContentService.uploadFile(file1.getBytes(), fileName);origFileName = file2.getOriginalFilename();String BankFileName=origFileName+"("+dataStr+")";fileName = UUID.randomUUID().toString().replaceAll("-", "");fileName = fileName + origFileName.substring(origFileName.lastIndexOf('.'), origFileName.length());String filePath2 = batchContentService.uploadFile(file2.getBytes(), fileName);return new String[]{filePath1, filePath2,chargeFileName,BankFileName};}
/** * @description 校验上传文件的后缀 * @param file * @param enums * @return */protected boolean validateFile(MultipartFile file, FileSuffixEnum... enums) {try {if (file == null || file.isEmpty()) {return false;}for (FileSuffixEnum t : enums) {if (StringUtils.equals(t.name().toUpperCase(), FilenameUtils.getExtension(file.getOriginalFilename()).toUpperCase())) {return true;}}} catch (Exception e) {log.error(e.getMessage(), e);}return false;}
batchContentService层 //上传文件@Overridepublic String uploadFile(byte[] data, String fileName) {String monthStr = DateUtil.getCurMonth();try {String fileDir = rootDir + "/" + monthStr;File file = new File(fileDir + File.separator + fileName);if (!file.exists()) {//FileUtils.forceMkdir(new File(fileName));FileUtils.touch(file);FileUtils.writeByteArrayToFile(file, data);}} catch (Exception e) {LOGGER.error("文件上传失败", e);throw new RuntimeException("文件上传失败");}return rootDir + "/" + monthStr + File.separator + fileName;}
TaskService层@Overridepublic void save(@DataSource(field="rCashId")Integer rCashId, TaskRequest request) {taskMapper.insert(DozerUtil.map(request,TaskEntity.class));}
阅读全文
0 0
- 文件上传入库方式1
- 文件上传及数据入库
- Yii的文件上传入库
- 在系统上传的txt文件无法入库
- java通过ftp方式读取文件,并解析入库
- java通过ftp方式读取文件,并解析入库
- java通过ftp方式读取文件,并解析入库
- Servlet方式文件上传
- 文件上传方式
- Ajax方式上传文件
- Ajax方式上传文件
- Ajax方式上传文件
- Ajax方式上传文件
- POST方式上传文件
- 窗体上传文件方式
- javascript 文件上传方式
- Ajax方式上传文件
- ajax方式上传文件
- 模板整理: 矩阵乘法
- Random Forest v.s. Bagging
- php开发公众号素材管理总结
- Windows调试——死锁的查找
- 设计模式(1)-单例模式 及使用该模式改造的日志写入代码
- 文件上传入库方式1
- 双显示器,拆了副屏以后,发现程序依然不在主屏幕显示
- 微信小程序倒计时功能
- UML之类图
- 校招编程题(四) 二叉树之根据前序和中序遍历求按照深度优先遍历打印的序列
- 详解spark sql用户自定义函数:UDF与UDAF
- springmvc+mybatis 构建cms内容发布系统 ios android
- 11 が
- 设计模式之禅1