- 公共组件文件相关的操作后台类的位置 : 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)