使用AJAX上传文件及表单数据 1
shoranxfyzhy 发布于2017-12-26 浏览:2611 回复:10
1
收藏

如果想要通过ajax异步请求上传文件及数据,需要下载ajaxfileuplad.js,http://dl.iteye.com/topics/download/7361bef7-0498-38cd-8db4-7e85f8c1316 

function importNewTemplate() {
var arrId = [];
arrId[0] = "uploadfile";
var data = getFormJson("form");
var filePath = document.getElementById("uploadfile").value;
$.ajaxFileUpload({
url:APP_PATH+"/yn/user/importNew.do?",
async: false,
type:'post',
dataType:'json',
data:data,
fileElementId:arrId,
success:function(datas){
if(datas.status==0){//成功后跳转到新的页面
var rightTemplatePath = datas.data.rightTemplatePath;
var optUserName = datas.data.optUserName;
var submitUrl = APP_PATH+"/yn/user/submitTmp.do?rightTemplatePath=" +rightTemplatePath + "&order.optUser.name=" + optUserName;
window.location.href = submitUrl;
}else{
var result = confirm('导入失败是否下载错误模板');
var downloadPath = datas.data.downloadPath;
if(result){
var href = APP_PATH + downloadPath;
window.open(href, "_blank");
}

}
}
});}

 

 

public String importNew() throws Exception {
String rtUserUuid = this.getRTUser().getUuid();
IUserAuthzService userService = (IUserAuthzService) com.ultrapower.iam.core.BeanFactory.getBean(com.ultrapower.iam.server.common.BeanIDConstants.USER_AUTHZ_FLOW);
String realPath = System.getProperty("flowrealPath");
long time = System.currentTimeMillis();
realPath = realPath+"/download/user_template_new"+time+".xls";
String downloadPath = "/download/user_template_new"+time+".xls";
this.errorTemplatePath=downloadPath;

File file = this.addAttachment();
ExcelOperation oo = new ExcelOperation();
oo.setFile(file);
oo.setType("0");
oo.setPath(realPath);
oo.setUserUUID(rtUserUuid);
ExcelOperation excelOperation = userService.initExcelObj(oo);
JsonResp jsonResp = JsonResp.asEmpty();
if(excelOperation.isFlag()){
this.getResponse().setContentType("text/html;charset=UTF-8");
jsonResp.add("rightTemplatePath", this.rightTemplatePath);
jsonResp.add("optUserName", this.getOrder().getOptUser().getName());
this.getResponse().getWriter().write(jsonResp.success().toJson());
return null;
}else{
//如果失败 返回错误模范下载路径
this.getResponse().setContentType("text/html;charset=UTF-8");
jsonResp.add("downloadPath", downloadPath);
this.getResponse().getWriter().write(jsonResp.error("").toJson());
return null;
}

}

 

 

 


id="importNewTem"
value="导入"
class="button_save"
onmouseover="this.className='button_save_hover'"
onmouseout="this.className='button_save'"
onclick="importNewTemplate();"/>

 

 



*
选择导入模板:



 

收藏
点赞
1
个赞
共10条回复 最后由shoranxfyzhy回复于2019-04-21
#12shoranxfyzhy回复于2019-04-21
该评论已删除

哪里有不懂,可以提出来

0
#10荒墨丶迷失回复于2017-12-27
#8 shoranxfyzhy回复
我只能联系版主才能删除?我自己也删不了,也编辑不了。

在 给一点建议 插入的代码最好也是格式OK的整体 jsp 页面 js  控制层都做好说明

0
#9荒墨丶迷失回复于2017-12-27
#8 shoranxfyzhy回复
我只能联系版主才能删除?我自己也删不了,也编辑不了。

你要删除吗  我帮你删除 只有版主权限才能删除的

0
#8shoranxfyzhy回复于2017-12-27
#6 荒墨丶迷失回复
如果可以你可以重新发帖 然后该贴可以联系版主删除即可

我只能联系版主才能删除?我自己也删不了,也编辑不了。

0
#7shoranxfyzhy回复于2017-12-27

文中的java代码(另外为什么只能写一段代码啊)

public String importNew() throws Exception {
		String rtUserUuid = this.getRTUser().getUuid();
		IUserAuthzService userService = (IUserAuthzService) com.ultrapower.iam.core.BeanFactory
				.getBean(com.ultrapower.iam.server.common.BeanIDConstants.USER_AUTHZ_FLOW);
		String realPath = System.getProperty("flowrealPath");
		long time = System.currentTimeMillis();
		realPath = realPath + "/download/user_template_new" + time + ".xls";
		String downloadPath = "/download/user_template_new" + time + ".xls";
		this.errorTemplatePath = downloadPath;

		File file = this.addAttachment();
		ExcelOperation oo = new ExcelOperation();
		oo.setFile(file);
		oo.setType("0");
		oo.setPath(realPath);
		oo.setUserUUID(rtUserUuid);
		ExcelOperation excelOperation = userService.initExcelObj(oo);
		JsonResp jsonResp = JsonResp.asEmpty();
		if (excelOperation.isFlag()) {
			this.getResponse().setContentType("text/html;charset=UTF-8");
			jsonResp.add("rightTemplatePath", this.rightTemplatePath);
			jsonResp.add("optUserName", this.getOrder().getOptUser().getName());
			this.getResponse().getWriter().write(jsonResp.success().toJson());
			return null;
		} else {
			// 如果失败 返回错误模范下载路径
			this.getResponse().setContentType("text/html;charset=UTF-8");
			jsonResp.add("downloadPath", downloadPath);
			this.getResponse().getWriter().write(jsonResp.error("").toJson());
			return null;
		}

	}
0
#6荒墨丶迷失回复于2017-12-27
#4 shoranxfyzhy回复
谢谢提醒,这个当时明显的标示,又不能编辑。我可以重新在这下面回复几条  
展开

如果可以你可以重新发帖 然后该贴可以联系版主删除即可

0
#5shoranxfyzhy回复于2017-12-27

上文中的js代码

function importNewTemplate() {
var arrId = [];
arrId[0] = "uploadfile";
var data = getFormJson("form");
var filePath = document.getElementById("uploadfile").value; 
$.ajaxFileUpload({
url:APP_PATH+"/yn/user/importNew.do?",
async: false,
type:'post',
dataType:'json',
data:data,
fileElementId:arrId,
success:function(datas){
if(datas.status==0){//成功后跳转到新的页面
var rightTemplatePath = datas.data.rightTemplatePath;
var optUserName = datas.data.optUserName;
var submitUrl = APP_PATH+"/yn/user/submitTmp.do?rightTemplatePath=" +rightTemplatePath + "&order.optUser.name=" + optUserName;
window.location.href = submitUrl;
}else{
var result = confirm('导入失败是否下载错误模板'); 
var downloadPath = datas.data.downloadPath;
if(result){
var href = APP_PATH + downloadPath;
window.open(href, "_blank");
}
}
} 
});}
0
#4shoranxfyzhy回复于2017-12-27
#3 荒墨丶迷失回复
楼主,代码片段可以选择文本编辑上的 插入代码功能 可以稍微加入注释 方便别人理解 如果ajax上传文件其实有很多种方式的~
展开

谢谢提醒,这个当时明显的标示,又不能编辑。我可以重新在这下面回复几条

 

0
#3荒墨丶迷失回复于2017-12-27

楼主,代码片段可以选择文本编辑上的 插入代码功能

可以稍微加入注释 方便别人理解 如果ajax上传文件其实有很多种方式的~

1
#2周俊316回复于2017-12-27

特别详细,手动赞

0
TOP
切换版块