html如下:

<form>
	<div id="whiteListDiv" style="display: none;margin:-5px auto 10px auto;" class="form-group clearfix">
		<label><font></font></label>
		<input type="file" id="whiteList" name="whiteList" style="height: 24px; width: 500px;" />
		<input type="button" class="btn-t1" onclick="uploadList('white');" value="上传" style="width: 120px; margin-left: 20px;">
	</div>
			
				
	<div class="form-group clearfix">
		<label><font></font>是否有黑名单</label>
		<input type="file" id="blackList" name="blackList" style="height: 24px; width: 500px;" />
		<input type="button" class="btn-t1" onclick="uploadList('black');" value="上传" style="width: 120px; margin-left: 20px;">
	</div>
</form>

注意id和name属性

调用的JS方法:

function uploadList(type){
    	
    	var fileList;
    	if(type == "white"){
    		fileList = $("#whiteList").val();
    	} else {
    		fileList = $("#blackList").val();
    	}
    	
    	if(fileList == null || fileList == ""){
    		alert("请先选择文件再上传");
    		return;
    	}
    	
    	var suffix = fileList.substring(fileList.lastIndexOf("."));
    	if(suffix != ".csv" && suffix != ".CSV"){
    		alert("请选择csv格式文件");
        	return;
    	}
    	
    	var formData = new FormData($("form")[0]);
    	formData.append("idBombBannerInfo",sid);
    	formData.append("type",type);
    	
    	$.ajax({
    		url : '../../accessManagerment/uploadFileList.do',type : 'POST',data : formData,// 告诉jQuery不要去处理发送的数据
        	processData : false,// 告诉jQuery不要去设置Content-Type请求头
        	contentType : false,beforeSend:function(){
	        	//console.log("正在进行,请稍候");
        			},success : function(data) {
		        		if(data.errorMsg != null && data.errorMsg != ""){
	        				alert(data.errorMsg);
	        			} else {
	        				alert(data.resultMsg);
	        			}
        			},error : function(responseStr) { 
        				alert("上传名单出现异常");
        			} 
    	});
    	
    }

由于是ajax发起请求,界面不用刷新

后台获取参数

@RequestMapping("/accessManagerment/uploadFileList.do")
	public void uploadFileList(HttpServletRequest request,HttpServletResponse response,@RequestParam(value="whiteList",required=false) multipartfile whiteList,@RequestParam(value="blackList",required=false) multipartfile blackList,@RequestParam(value="idBombBannerInfo",required=false) String idBombBannerInfo,@RequestParam(value="type",required=false) String type
								) throws IOException,ParseException,CmsBusinessException,IllegalStateException,servletexception{
		CmsLogger.audit("弾屏广告-上传白名单/黑名单:[type=" + type+"][idBombBannerInfo="+"]");
		Map<String,Object> resultMap  = new HashMap<String,Object>();
		Map<String,Object> paramMap  = new HashMap<String,Object>();
		PrintWriter out = initWriter();
		out = response.getWriter();
		String result = "";
		
		if(!(idBombBannerInfo != null && !idBombBannerInfo.equals("") && type != null && !type.equals(""))){
			result = "{\"errorMsg\": \"上传参数不能为空\"}";
			return;
		}
		
		//获取产品编码
//		DefaultMultipartHttpServletRequest req = (DefaultMultipartHttpServletRequest) request;
//		String productCode = req.getParameter("productCode");
		long www = whiteList.getSize();
		long bbb = blackList.getSize();
		
		multipartfile fileList = null;
		if(type != null && type.equals("white")){
			fileList = whiteList;
		} else {
			fileList = blackList;
		}
		try{
			if(fileList == null){
				result = "{\"errorMsg\": \"上传文件不能为空\"}";
				return;
			}
			
			//判断上传文件的格式(csv)
			String originalName = fileList.getoriginalFilename();
			String suffix = originalName.substring(originalName.lastIndexOf("."));
			if(!suffix.equalsIgnoreCase(".csv")){
				result = "{\"errorMsg\": \"只能上传csv格式的文件\"}";
				return;
			}
			
			//获取文件内容
			InputStream is = fileList.getInputStream();
			BufferedReader reader = new BufferedReader(new InputStreamReader(is));
//			String phonestr = "";
//			String tmp = "";
//			int count = 0;		//代表上传的手机号数量
//			while((tmp = reader.readLine()) != null){
//				//仅截取每行的前11位--如果长度够11
//				if(tmp != null && tmp.length() >= 11){
//					//最多传递500个手机号
//					if(count < 500){
//						phonestr += tmp.substring(0,11) + ",";
//						count++;
//					} else {
//						result = "{\"errorMsg\": \"白名单上传失败 :白名单数量已超过500\"}";
//						return;
//					}
//				}
//			}
//			
//			if(count == 0){
//				result = "{\"errorMsg\": \"上传的白名单为空,请录入白名单重新上传!\"}";
//				return;
//			}
//			
//			if(phonestr.indexOf(",") > -1){
//				phonestr = phonestr.substring(0,phonestr.length() - 1);
//			}
			
			//下面调用接口直接将手机号一并发送过去
//			String URL = "http://IQSZ-L1470:9091/elis_mili_shop_app/do/app/product/factory/batchSaveUserWhiteList";
			String urlSuffix = cachePropertiesUtils.getPropertyValue("mili_shop.http.app.url");
			String URL = urlSuffix + "/do/app/product/factory/batchSaveUserWhiteList";
			
			NameValuePair[] data = {
//					new NameValuePair("whilteList",phonestr),//					new NameValuePair("operator",user.getUserUmNo())
					};
			//调用接口
			resultMap.put("resultCode","00");
			
			if(resultMap != null && resultMap.get("resultCode").equals("00")){
				//mili-shop新增成功
				/*注意添加产品的时候,也要同时添加产品配置信息*/
				result = "{\"resultMsg\": \"上传成功\"}";
				if(type.equals("white")){
					paramMap.put("isuploadWhitelist","Y");
				} else {
					paramMap.put("isuploadBlacklist","Y");
				}
				paramMap.put("sid",idBombBannerInfo);
				
				accessManagermentService.updateBombBannerStatus(paramMap);
				
			} else {
				result = "{\"errorMsg\": \"上传失败 " + resultMap.get("resultMsg") + "\"}";
				CmsLogger.audit("弾屏广告名单上传失败");
			}
			
		} catch(Exception e){
			result = "{\"errorMsg\": \"弾屏广告名单上传失败\"}";
			CmsLogger.error("BombBannerManagementController-->uploadFileList:弾屏广告名单上传失败:" + e.getMessage(),e);
		} finally {
			if (null != out) {
				out.print(result);
				out.flush();
				out.close();
			}
		}
	}

jquery引用正常,请求能正常到后台,应该就可以直接使用了,上传代码是直接可运行的。。。

Ajax无刷新上传的更多相关文章

  1. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  2. android – Phonegap本地构建 – jquery ajax错误:readystate 0 responsetext status 0 statustext error

    解决方法您是否在索引文件中包含了内容安全元标记?

  3. Ajax简单的异步交互及Ajax原生编写

    一提到异步交互大家就会说ajax,仿佛ajax这个技术已经成为了异步交互的代名词.那下面将研究ajax的核心对象

  4. Ajax跨域问题的解决办法汇总(推荐)

    本文给大家分享多种方法解决Ajax跨域问题,非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧

  5. ajax编写简单的登录页面

    这篇文章主要为大家详细介绍了ajax编写简单登录页面的具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  6. ajax从JSP传递对象数组到后台的方法

    今天小编就为大家分享一篇ajax从JSP传递对象数组到后台的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  7. 解决ajax返回验证的时候总是弹出error错误的方法

    这篇文章主要介绍了解决ajax返回验证的时候总是弹出error错误的方法,感兴趣的小伙伴们可以参考一下

  8. 使用AJAX完成用户名是否存在异步校验

    这篇文章主要介绍了使用AJAX完成用户名是否存在异步校验的相关资料,需要的朋友可以参考下

  9. ajax实现无刷新省市县三级联动

    这篇文章主要为大家详细介绍了ajax实现无刷新省市县三级联动的相关资料,利用三层架构实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. jQuery Ajax 实现分页 kkpager插件实例代码

    本文通过实例代码给大家讲解了jQuery Ajax 实现分页 kkpager插件功能,需要的的朋友参考下吧

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部