直接上代码:
在上传页面也如如下代码:
<#include "../house/xsl_upload.html"/>
<span id="ufc1" style="position:relative">
<input type='text' id='uploadFileText1' width="220px" disabled="disabled"/>
<input class="browse" type='button' value='表格导入'/>
<input onchange="$('#uploadFileText1').val(this.value)" size="14" type="file" id="uploadFile1" class="file-button"/>
</span>
<input class="upload-button" type="button" value="上传" onclick="uploadAttachment(1);"/><br/>
<@p.text id="uploadImgPath1" name="titleImg" size="40" disabled="disabled" />
以下是引入的xsl_uoload.html内容
/上传附件
function uploadAttachment(n) {
console.log(window.location.origin);
var of = $("#uploadFile"+n);
var wjmc=of.val();
var wjlx=wjmc.split(".");
console.log(wjlx[1]);
//检查是否选择了文件
if(of.val()=="") {
$.alert("<@s.m 'global.prompt'/>",'<@s.m "content.error.noFileSelected"/>');
return;
}
if(wjlx[1]!="xls"&&wjlx[1]!="xlsx"){
$.alert("<@s.m 'global.prompt'/>",'<@s.m "content.error.noFiletype"/>');
return;
}
//将file移动至上传表单
$("#fileContent").empty();
$("#fileContent").append(of);
//复制一个file放至原处
$("#ufc"+n).append(of.clone().attr("value",""));
//修改属性
$("#uploadFileText"+n).attr("value","");
of.attr("id","");
of.attr("name","uploadFile");
//其他表单
$("#ufFileName").val($("#fileName"+n).val());
$("#ufWidth").val($("#zoomWidth"+n).val());
$("#ufHeight").val($("#zoomHeight"+n).val());
//先清除
$("#ufMark").val("");
$("#ufMark").val($("#mark"+n).val());
$("#uploadNum").val(n);
$("#uploadForm").submit();
}
<form id="uploadForm" action="../common/o_upload_xls.do" method="post" enctype="multipart/form-data" target="hiddenIframe" style="display:none;width:0px;height:0px;">
<span id="fileContent"></span>
<input id="ufWidth" type="hidden" name="zoomWidth"/>
<input id="ufHeight" type="hidden" name="zoomHeight"/>
<input id="ufFileName" type="hidden" name="fileName"/>
<input id="ufMark" type="hidden" name="mark"/>
<input id="uploadNum" type="hidden" name="uploadNum"/>
</form>
<iframe name="hiddenIframe" frameborder="0" border="0" style="display:none;width:0px;height:0px;"></iframe>
//////////////////////////////////////////////////////////////////////////////////////////////////////////
后台代码:调用的是图片上传代码,去除了格式校验
@RequiresPermissions("common:o_upload_xls")
@RequestMapping("/common/o_upload_xls.do")
public String executexls(
String filename,
Integer uploadNum,
Boolean mark,
@RequestParam(value = "uploadFile", required = false) MultipartFile file,
HttpServletRequest request, ModelMap model) {
CmsSite site = CmsUtils.getSite(request);
MarkConfig conf = site.getConfig().getMarkConfig();
if (mark == null) {
mark = conf.getOn();
}
String origName = file.getOriginalFilename();
String ext = FilenameUtils.getExtension(origName).toLowerCase(
Locale.ENGLISH);
try {
String fileUrl;
if (site.getConfig().getUploadToDb()) {
String dbFilePath = site.getConfig().getDbFileUri();
if (!StringUtils.isBlank(filename)) {
filename = filename.substring(dbFilePath.length());
if (mark) {
File tempFile = mark(file, conf);
fileUrl = dbFileMng.storeByFilename(filename,
new FileInputStream(tempFile));
tempFile.delete();
} else {
fileUrl = dbFileMng.storeByFilename(filename, file
.getInputStream());
}
} else {
if (mark) {
File tempFile = mark(file, conf);
fileUrl = dbFileMng.storeByExt(site.getUploadPath(),
ext, new FileInputStream(tempFile));
tempFile.delete();
} else {
fileUrl = dbFileMng.storeByExt(site.getUploadPath(),
ext, file.getInputStream());
}
// 加上访问地址
fileUrl = request.getContextPath() + dbFilePath + fileUrl;
}
} else if (site.getUploadFtp() != null) {
Ftp ftp = site.getUploadFtp();
String ftpUrl = ftp.getUrl();
if (!StringUtils.isBlank(filename)) {
filename = filename.substring(ftpUrl.length());
if (mark) {
File tempFile = mark(file, conf);
fileUrl = ftp.storeByFilename(filename,
new FileInputStream(tempFile));
tempFile.delete();
} else {
fileUrl = ftp.storeByFilename(filename, file
.getInputStream());
}
} else {
if (mark) {
File tempFile = mark(file, conf);
fileUrl = ftp.storeByExt(site.getUploadPath(), ext,
new FileInputStream(tempFile));
tempFile.delete();
} else {
fileUrl = ftp.storeByExt(site.getUploadPath(), ext,
file.getInputStream());
}
// 加上url前缀
fileUrl = ftpUrl + fileUrl;
}
} else {
String ctx = request.getContextPath();
if (!StringUtils.isBlank(filename)) {
filename = filename.substring(ctx.length());
if (mark) {
File tempFile = mark(file, conf);
fileUrl = fileRepository.storeByFilename(filename,
tempFile);
tempFile.delete();
} else {
fileUrl = fileRepository
.storeByFilename(filename, file);
}
} else {
if (mark) {
File tempFile = mark(file, conf);
fileUrl = fileRepository.storeByExt(site
.getUploadPath(), ext, tempFile);
tempFile.delete();
} else {
fileUrl = fileRepository.storeByExt(site
.getUploadPath(), ext, file);
}
// 加上部署路径
fileUrl = ctx + fileUrl;
}
}
fileMng.saveFileByPath(fileUrl, origName, false);
model.addAttribute("uploadPath", fileUrl);
model.addAttribute("uploadNum", uploadNum);
} catch (IllegalStateException e) {
model.addAttribute(ERROR, e.getMessage());
log.error("upload file error!", e);
} catch (IOException e) {
model.addAttribute(ERROR, e.getMessage());
log.error("upload file error!", e);
} catch (Exception e) {
model.addAttribute(ERROR, e.getMessage());
log.error("upload file error!", e);
}
cmsUserMng.updateUploadSize(CmsUtils.getUserId(request), Integer.parseInt(String.valueOf(file.getSize()/1024)));
return RESULT_PAGE;
}