xhr上传文件
来源:互联网 发布:网页中js文件怎么打开 编辑:程序博客网 时间:2024/06/16 18:59
document.getElementById('imgFile').addEventListener('change', readFile, false);
//上传图片function readFile() { var file = this.files[0]; /* var rFilter = /^(image\/jpeg|image\/png|image\/jpg)$/i; if (!rFilter.test(file.type)) { alert('请选择图片文件'); return; } */function xhrSubmit(file,value) {var me = this; var type, resUrl, fd, /*FormData*/ xhr; if(value){ xhr = false; try { xhr = new XMLHttpRequest();//尝试创建 XMLHttpRequest 对象,除 IE 外的浏览器都支持这个方法。 } catch (e) { xhr = ActiveXobject("Msxml12.XMLHTTP");//使用较新版本的 IE 创建 IE 兼容的对象(Msxml2.XMLHTTP)。 } var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"正在上传文件..."}); myMask.show(); me.down('#importBtn').setDisabled(true); if (xhr.upload) { // 文件上传成功或是失败 xhr.onreadystatechange = function (e) { if (xhr.readyState == 4) { if (xhr.status == 200) { var data = JSON.parse(xhr.responseText); if(data.success){ myMask.hide(); me.down('#realUploadPath').setValue(data.data); me.down('#importBtn').setDisabled(false); } } else { alert('服务器出错'); } } }; xhr.open("POST", "customer/uploadFile.do", true); xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); var fd = new FormData(); fd.append("file", file); xhr.send(fd); } } },}#java端/** * * @Title: uploadFile * @Description: TODO(上传文件) * @param @param positionId * @param @return * @return Map<String,Object> 返回类型 * @throws */@RequestMapping(value = "/uploadFile")@ResponseBodypublic Map<String, Object> uploadFile(@RequestParam MultipartFile file,HttpServletRequest request) {Map<String, Object> map = new HashMap<String, Object>(); MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; //这里要进行判断,即使是空值,没有上传内容,file都是有值(空值)的,而文件流大小要大于0才是有上传的东西 if (file.getSize() > 0){ //获得上传文件原始名 String imagename = file.getOriginalFilename(); //算出后缀名 String ext = imagename.substring(imagename.lastIndexOf(".")) ; //对文件类型进行判断,这个操作也可以在前台进行处理,在前台进行处理比较好,前后台都进行处理最稳妥 List<String> fileTypes = new ArrayList<String>(); fileTypes.add(".xls"); fileTypes.add(".xlsx"); fileTypes.add(".xlk"); //是再进行处理 if (fileTypes.contains(ext.toLowerCase())){ //文件名为:唯一的工号 + avatar + 系统时间 + 后缀 String fileName = System.currentTimeMillis() + ext ; //文件夹;String imagepath = request.getRealPath("/upload");过时的方法,用request.getSession().getServletContext()代替 String avatarFolder = request.getSession().getServletContext().getRealPath("/uploadFile"); File localFile = new File(avatarFolder,fileName); try { file.transferTo(localFile); map.put(ConstDefine.CONST_SUCCESS_KEY,true); map.put(ConstDefine.CONST_DATA_KEY,request.getSession().getServletContext().getRealPath("/uploadFile")+"//"+fileName); } catch (IOException e) { logger.error(e.getMessage());// 打印异常日志信息 map.put(ConstDefine.CONST_SUCCESS_KEY, false); map.put(ConstDefine.CONST_MESSAGE_KEY, e.getMessage()); } } else { map.put(ConstDefine.CONST_SUCCESS_KEY,false); map.put(ConstDefine.CONST_MESSAGE_KEY,"文件格式出错!"); } }return map;}
阅读全文
0 0
- xhr上传文件
- XHR异步上传文件报错: “the request was rejected because no multipart boundary was found”
- xhr
- XHR
- XHR
- 关于百度上传组件webuploader,xhr直接abort
- 文件上传---文件上传
- AJAX XHR
- XHR 是什么?
- XHR XMLHttpRequest
- XMLHttpRequest(XHR)
- XHR是什么?
- XHR-XMLHttpRequest
- XHR&Fetch
- 上传文件
- 文件上传
- 上传文件
- 文件上传
- SVC进行图像识别——万图识别
- etcd 总览
- springcloud中用到的配置项,kafka、Validator、swagger等
- Jboss环境,Spring3.1.2与Hadoop2.3.0冲突解决方案
- 优秀的前端框架
- xhr上传文件
- IJKPlayer(播放视频)
- Redis 系列(三)——哨兵机制
- Android 仿微信调用第三方应用导航(百度、高德、腾讯)
- 频道管理
- layer结合easyUI弹窗显示数据时406 (Not Acceptable)
- RFID界面设计
- 【转】23种设计模式之单例模式
- 嵌入式中通过可变参数va实现printf