NC65 HR自助html5替换Flash再chrome继续试用问题

  • 公共组件文件相关的操作后台类的位置 : nc.uap.lfw.file.*
  • 具体涉及到的jar包包括但不限于:

nchome\modules\webrt\lib\pubwebrt_fmgLevel-1.jar

  • 2020年12月开始Chrome不在支持Flash插件以后,替换集团的补丁包以后,自助等模块文件上传、Excel导入等功能还需要修改如下Java类
  • nc.uap.lfw.file.action.TempFileAction.upload() 获取file的方式需要做判断
package nc.uap.lfw.file.action;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import nc.uap.lfw.core.ContextResourceUtil;
import nc.uap.lfw.core.log.LfwLogger;
import nc.uap.lfw.servletplus.annotation.Action;
import nc.uap.lfw.servletplus.annotation.Servlet;
import nc.uap.lfw.servletplus.constant.Keys;
import nc.uap.lfw.servletplus.core.impl.BaseAction;

import org.apache.commons.io.IOUtils;
import org.springframework.web.multipart.MultipartException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;

import uap.lfw.core.ml.LfwResBundle;
/**
 * 临时文件上传Action,将文件暂存到目录上,并通知前台进行业务处理
 * 
 */
@Servlet(path = "/tmpfile")
public class TempFileAction extends BaseAction {
    
    
	private static MultipartResolver multipartResolver = new CommonsMultipartResolver();;
	/**
	 * 获得MultipartHttpServletRequest
	 * 
	 * @return
	 * @throws MultipartException
	 */
	private static MultipartHttpServletRequest getMultipartResolver(HttpServletRequest request) throws MultipartException {
    
    
		
			((CommonsMultipartResolver) multipartResolver).setDefaultEncoding("UTF-8");
		
		return multipartResolver.resolveMultipart(request);
	}
	/**
	 * 上传文件
	 */
	@Action(method = Keys.POST)
	public void upload() {
    
    
		InputStream input = null;
		FileOutputStream fout = null;
		try {
    
    
			MultipartHttpServletRequest req = getMultipartResolver(request);
			MultipartFile file = req.getFile("Filedata");
			input = file.getInputStream();
			String importDir = "importfiles";
			String dirStr = ContextResourceUtil.getCurrentAppPath() + importDir;
			File dir = new File(dirStr);
			if(!dir.exists())
				dir.mkdirs();
			String fileName = UUID.randomUUID().toString() + ".xlsx";
			String path = dirStr + "/" + fileName;
			if(input != null){
    
    
				fout = new FileOutputStream(path);
				byte[] bytes = new byte[4096];
				int count = input.read(bytes);
				while(count > 0){
    
    
					fout.write(bytes, 0, count);
					count = input.read(bytes);
				}
			}
			
			String ctrlClazz = req.getParameter("exectrl");
			String widgetId = req.getParameter("widgetId");
			String method = req.getParameter("execmethod");
			if(method == null || method.equals(""))
				print(ctrlClazz + "," + importDir + "/" + fileName + "," + widgetId);
			else
				print(ctrlClazz + "," + importDir + "/" + fileName + "," + widgetId + "," + method);
			
		} catch (Exception e) {
    
    
			LfwLogger.error(LfwResBundle.getInstance().getStrByID("bc", "TempFileAction-000005")/*文件上传失败*/, e);
			print(LfwResBundle.getInstance().getStrByID("bc", "TempFileAction-000006")/*文件上传失败:*/);
			print(e.getMessage());
		} finally {
    
    
			IOUtils.closeQuietly(input);
			IOUtils.closeQuietly(fout);
		}
	}	
}

  • 绩效考核填报节点,导入excel的功能再hrpe下
nc.bs.hrss.pe.gauge.PBCGaugeCard.onUploadedExcelFile(ScriptEvent)

猜你喜欢

转载自blog.csdn.net/u010741112/article/details/129949970