2019独角兽企业重金招聘Python工程师标准>>>

html

    <style>#oDiv {height: 200px;width: 200px;border: 1px solid #000;text-align: center;margin-bottom: 10px;}</style><div class="all"><div id="oDiv"><img src="" id="showPic" style="height:100%;width:100%" /></div><input type="file"  id="oInput" name="file" onchange="ShopPictureInfoDlg.upload_cover(this)"/></div><!-- form 表单里面的imageUrl录入框 实际是要隐藏的 -->
<input id="imageUrl" name="图片url" type="text" name="ImageUrl" placeholder="defaultPath" value=""/>

js:

注意里面的complete 设置为false ,因为该项目的ajax属性设置了需要执行compele的方法,而配置的环境却不可以解析,回有关于

XMLHttpRequest getResponseHeader() 没有这个function的错误

//具体的上传图片方法
function ajax_upload(feid, callback, ext) {if (image_check(feid)) {$.ajaxFileUpload({url: Feng.ctxPath +"/shop/uploadImage",secureuri : false,fileElementId: feid,dataType: 'json',data: {fileType: ext},//增加推送的属性type: 'post',async: true,complete: false,success:function (data) {if (data.success){$("#imageUrl").val(data.imagePath);$("#showPic").attr("src", data.imagePath);}alert(data.message);},error:function (data) {console.log(data);console.log("error");}});}
};

ajaxfileupload:

修改了里面uploadHttpData type="json", 由于返回的是application/json ,所以获取的数据回带上 <pre 标签,不是标准的xml 所以要做数据替换

data = jQuery.parseJSON(jQuery(data).text());
            // eval("data = " + data);

/*** 初始化详情对话框*/
var ShopPictureInfoDlg = {shopPictureInfoData : {},validateFields: {shopId: {validators: {notEmpty: {message: '店铺id不能为空'}}},imageUrl: {validators: {notEmpty: {message: '图片url不能为空'}}},}
};/*** 清除数据*/
ShopPictureInfoDlg.clearData = function() {this.shopPictureInfoData = {};
}/*** 设置对话框中的数据** @param key 数据的名称* @param val 数据的具体值*/
ShopPictureInfoDlg.set = function(key, val) {this.shopPictureInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;return this;
}/*** 设置对话框中的数据** @param key 数据的名称* @param val 数据的具体值*/
ShopPictureInfoDlg.get = function(key) {return $("#" + key).val();
}/*** 关闭此对话框*/
ShopPictureInfoDlg.close = function() {parent.layer.close(window.parent.ShopPicture.layerIndex);
}/*** 收集数据*/
ShopPictureInfoDlg.collectData = function() {this.set('id').set('shopId').set('imageUrl').set('noteText');
}
/*** 验证数据是否为空*/
ShopPictureInfoDlg.validate = function () {$('#shopPictureForm').data("bootstrapValidator").resetForm();$('#shopPictureForm').bootstrapValidator('validate');return $("#shopPictureForm").data('bootstrapValidator').isValid();
};
/*** 提交添加*/
ShopPictureInfoDlg.addSubmit = function() {this.clearData();this.collectData();if (!this.validate()) {return;}//提交信息var ajax = new $ax(Feng.ctxPath + "/shopPicture/add", function(data){Feng.success("添加成功!");window.parent.ShopPicture.table.refresh();ShopPictureInfoDlg.close();},function(data){Feng.error("添加失败!" + data.responseJSON.message + "!");});ajax.set(this.shopPictureInfoData);ajax.start();
}/*** 提交修改*/
ShopPictureInfoDlg.editSubmit = function() {this.clearData();this.collectData();if (!this.validate()) {return;}//提交信息var ajax = new $ax(Feng.ctxPath + "/shopPicture/update", function(data){Feng.success("修改成功!");window.parent.ShopPicture.table.refresh();ShopPictureInfoDlg.close();},function(data){Feng.error("修改失败!" + data.responseJSON.message + "!");});ajax.set(this.shopPictureInfoData);ajax.start();
}/*** 子窗口获取父窗口的值* @param id*/
function init() {// 初始化内容var url = parent.document.URL;var shopId = $("#shopId",window.parent.document).text();if(url.indexOf("detail") != -1){$("#shopId").val(shopId);}
};
init();/*** 图片上传*/
ShopPictureInfoDlg.upload_cover = function(obj) {//回传后缀var filePath = $("input[name='file']").val();var extStart = filePath.lastIndexOf(".");var ext = filePath.substring(extStart, filePath.length).toUpperCase();ajax_upload(obj.id, function (data) { //function(data)是上传图片的成功后的回调方法var isrc = data.relatPath.replace(/\/\//g, '/'); //获取的图片的绝对路径$('#image').attr('src', basePath + isrc).data('img-src', isrc); //给<input>的src赋值去显示图片}, ext);
}//具体的上传图片方法
function ajax_upload(feid, callback, ext) {if (image_check(feid)) {$.ajaxFileUpload({url: Feng.ctxPath +"/shop/uploadImage",secureuri : false,fileElementId: feid,dataType: 'json',data: {fileType: ext},//增加推送的属性type: 'post',async: true,complete: false,success:function (data) {if (data.success){$("#imageUrl").val(data.imagePath);$("#showPic").attr("src", data.imagePath);}alert(data.message);},error:function (data) {console.log(data);console.log("error");}});}
};
function image_check(feid) { //自己添加的文件后缀名的验证var img = document.getElementById(feid);return /.(jpg|png|gif|bmp)$/.test(img.value) ? true : (function () {Feng.info('图片格式仅支持jpg、png、gif、bmp格式,且区分大小写。');return false;})();
}$(function() {Feng.initValidator("shopPictureForm", ShopPictureInfoDlg.validateFields);
});

contrller:

只是为了返回数据,没写实质性文件保存

    /*** 图片上传*/@RequestMapping(method = RequestMethod.POST  ,value = "/uploadImage" )@ResponseBodypublic Object UploadImage(@RequestPart("file") MultipartFile file){//文件上传暂时没找到显示返回自定义异常方法,使用正常数据返回Map<String,Object> result = new HashMap<>();String path = Class.class.getClass().getResource("/").getPath();path = path.replace("/target/classes/","/src/main/webapp/static/img/logo.png");result.put("success",true);result.put("message","上传成功!");result.put("imagePath",path);return result;}

转载于:https://my.oschina.net/u/3556610/blog/2980847

java 项目使用 ajaxfileupload相关推荐

  1. github javaguide_GitHub上收获Star数排名前10的Java项目

    1. CS-Notes star:92.1k 介绍:技术面试必备基础知识.Leetcode.计算机操作系统.计算机网络.系统设计.Java.Python.C++ :地址:https://cyc2018 ...

  2. 新建eclipse的java项目报错处理

    新建eclipse的java项目报错处理:选中报错的项目文件夹→右击选择属性(ALT+Enter)→java构建路径→库→双击"构建路径上的JAR和类文件夹"下面的项→选择备用JR ...

  3. Java开发环境的搭建以及使用eclipse从头一步步创建java项目

    原文:出自本人的Linux博客http://blog.csdn.net/unix21/article/details/18813173 一.Java 开发环境的搭建 这里主要说windows环境下怎么 ...

  4. eclipse中java项目转换为web项目

    2019独角兽企业重金招聘Python工程师标准>>> 经常在eclipse中导入web项目时,出现转不了项目类型的问题,导入后就是一个java项目,有过很多次经历,今天也有同事遇到 ...

  5. eclipse中如何将java项目转为java Web项目

    有时候我们在eclipse中导入web项目时,系统当做一个java项目导入进来了.这时候在启动tomcat的服务器时无法找到该项目. 那么可以通过如下操作来将java项目转换为web项目. 1. 选择 ...

  6. 将一个普通的java项目转化为maven项目

    在学习Spring事务时,我参考的书的源码不是maven项目,整本书依赖的100多个jar包都在一个文件夹里,我本来对spring每个模块的学习源码都放在一个Github仓库里,每一个项目都是mave ...

  7. java项目_JNPF快速开发平台-简单快速高效开发java项目

    ◆JNPF快速开发平台 JNPF快速开发平台采用前后端分离技术.采用B/S架构开发,形成一站式开发多端(APP+PC)使用. 使用JNPF开发平台可以简单.快速.高效的构建各种类型java项目. ◆J ...

  8. Eclipse 创建 Java 项目概述

    Eclipse 是一个开放源代码的.基于 Java 的可扩展开发平台.Eclipse 是 Java 的集成开发环境(IDE),当然 Eclipse 也可以作为其他开发语言的集成开发环境,如C,C++, ...

  9. 立足GitHub学编程:13个不容错过的Java项目

    今天我们将整理一大波干货满满的优秀Java项目. GitHub可谓一座程序开发的大宝库,有些项目值得fork,有些则能帮助我们改进自有代码或者学习编程技能.无论如何,开发工作当中我们几乎不可能绕得开G ...

最新文章

  1. linux c 内存共享
  2. vue组件之轮播图的实现
  3. 简单介绍日志的发展历史
  4. HDU4267(2012年长春站)
  5. java面向对象高级分层实例_BaseDao
  6. 软件设计师 - 算法思想
  7. RESTful JSON Web服务最佳实践
  8. php多添件分页查询,ThinkPHP的多表查询+分页范例
  9. 用SDWebImage加载FLAnimatedImage
  10. maven的setting文件简单配置
  11. 如何产生cpk图形_真正把Cp、Cpk、Pp、Ppk讲清楚!
  12. M1 Mac 档案的临时暂存区工具: Yoink
  13. 计算机考试发送邮件教程,电脑考试怎么发邮件
  14. SPSS 的安装与概貌-第一章
  15. 2016/2/19:ApplePay
  16. python做矩阵初等行变换,matlab做初等行变换,python 矩阵初等行变换,解线性方程,numpy矩阵运算,sympy矩阵运算,求过渡矩阵,求具体某一基组下的坐标,解析几何
  17. 2个方式快速解决:Word背景图片怎么设置
  18. 为什么有的人飞黄腾达,有的人穷困潦倒 .
  19. 使用Huginn批量订阅微信公众号
  20. Python爬虫 - 抓取divnil动漫妹子图

热门文章

  1. mysql安装check requirements出错_精心整理的mysql主从监控脚本,值得收藏
  2. Android之ActivityManagerService详解(APP启动过程)
  3. Android之HTTP预备知识
  4. Scroller解析
  5. 【iOS数据持久化】偏好设置(UserDefaults)
  6. java代码程序_Java程序代码
  7. echart旭日图_150Echarts - 旭日图(Sunburst Label Rotate)
  8. 190401装饰器-高阶函数-闭包
  9. HAOI2014 走出金字塔
  10. springboot里面logback使用