js如何获取本地图片显示到浏览器并上传至服务器

这篇文章介绍的内容是关于浏览器显示本地图片的预览图,调用后端接口将图片上传至服务器,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

一、jsp页面

nbsp;html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">                                                              /js/jquery.js">        /js/jquery.min.js">            

            

登录后复制            

                            

                     var imgurl = “”; function getPhoto(node) { var imgURL = “”; try{ var file = null; if(node.files && node.files[0] ){ file = node.files[0]; }else if(node.files && node.files.item(0)) { file = node.files.item(0); } //Firefox 因安全性问题已无法直接通过input[file].value 获取完整的文件路径 try{ imgURL = file.getAsDataURL(); }catch(e){ imgRUL = window.URL.createObjectURL(file); } }catch(e){ if (node.files && node.files[0]) { var reader = new FileReader(); reader.onload = function (e) { imgURL = e.target.result; }; reader.readAsDataURL(node.files[0]); } } creatImg(imgRUL);//显示图片 return imgURL; } function creatImg(imgRUL){ document.getElementById(“userPic”).src = imgRUL; $('#userPic').viewer({ url: 'src', }); } //保存 function saveUser(){ //数据判断 var realName=$(“#realName”).val(); if(realName==null||realName==''){ layer.msg('用户名不能为空!',{icon : 7,time:1000}); return ; } var imgSrc = $(“#userPic”).attr(“src”); if(imgSrc == “” || imgSrc==null){ layer.msg('请上传图片!',{icon : 7,time:1000}); return ; } var formData = new FormData($(“#uploadForm”)[0]); $.ajax({ url : “../addUser”, type: 'POST', data: formData, async: false, cache: false, contentType: false, processData: false, success : function(data) { var obj = JSON.parse(data); layer.msg('保存成功!', {icon : 6,time : 2000}); }, error : function(data) { layer.msg('保存失败!', {icon : 5,time : 2000}); } }); }     

二、controller接口

/**      * 添加用户     * @param session     * @param request     * @param response     * @throws IOException     */    @RequestMapping(value = "/addUser", method = RequestMethod.POST)        public void addUser(MultipartFile entImg,HttpSession session, HttpServletRequest request, HttpServletResponse response)                       throws IOException {        String realName = request.getParameter("realName");//姓名        String gender = request.getParameter("gender");// 性别        //调用工具类上传图片        String userPic = FileUtils.uploadUser(entImg, request);        TestUser testUser = new TestUser();        testUser.setRealName(realName);        testUser.setGender(Integer.parseInt(gender));        testUser.setUserPic(userPic);        // 添加人员信息及图片url到数据库        int res= userService.insertUser(testUser);        if (res > 0) {            writeJSON(response, res);        } else {            writeJSON(response,null);        }    }

登录后复制

三、工具类

public class FileUtils {    FILES_PATH("files_path"); // 此路径存放于jdbc.properties配置文件中,例如:files_path=D:/uploadImgs    private static final String path = PropertiesUtil.get(FILES_PATH)+"/user";    /**     * 上传图片URL     * @param fileName     * @param request     * @return     */    public static String getPath(String fileName,HttpServletRequest request) {        String ip=IpUtil.getIP();        int port=request.getLocalPort();        StringBuilder sb=new StringBuilder();        sb.append("http://");        sb.append(ip);        sb.append(":");        sb.append(port);        sb.append("/uploadImgs/user/");        sb.append(fileName);        return sb.toString();    }    /**     * 以时间戳对上传文件进行重新命名     * @param file     * @return     */    public static String renameFile(MultipartFile file) {        if(file!=null) {            Long date=new Date().getTime();            String fileRealName=file.getOriginalFilename();            String prefix=fileRealName.substring(fileRealName.lastIndexOf(".")+1);            String fileName = date.toString()+"."+prefix;              return fileName;        }        return null;    }    /**     * 图片上传     * @param file     * @param fileName     */    public static String uploadUser(MultipartFile file, HttpServletRequest request) {        // 重命名        String renameFile = FileUtils.renameFile(file);        // 图片名        String picPath = FileUtils.getPath(renameFile, request);        // 上传        File targetFile = new File(borpath, renameFile);        if (!targetFile.exists() && !targetFile.isDirectory()) {            targetFile.mkdirs();        }        try {            file.transferTo(targetFile);        } catch (Exception e) {            e.printStackTrace();        }        return picPath;    }}

登录后复制

四、效果
这里写图片描述

这里写图片描述

3.图片上传成功后保存至指定文件夹下
这里写图片描述

4.数据库数据
这里写图片描述

相关推荐:

HTML5 本地裁剪图片并上传至服务器

压缩本地图片并上传至服务器

JAVA上传文件图片到服务器保存

把微信编辑器文章样式中的图片上传到微信服务器

以上就是js如何获取本地图片显示到浏览器并上传至服务器 的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2769599.html

(0)
上一篇 2025年3月8日 12:24:04
下一篇 2025年2月25日 03:50:13

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vue如何利用js等比压缩图片

    这篇文章介绍的内容是关于vue如何利用js等比压缩图片,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下最近做一个旅游项目 大家都知道旅游项目图片居多     1.在项目中由于图片尺寸过大  再加上给图片设置了宽高导致图片压缩严…

    2025年3月8日 编程技术
    200
  • 熟悉JS脚本在kettle数据处理的应用

    这篇文章介绍的内容是熟悉JS脚本在kettle数据处理的应用,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 解决方法:结合Generate Rows(数据生成)和Java Script Value(JS组件)及文本输入组件完…

    2025年3月8日 编程技术
    200
  • 浅谈JS的this调用对象

    这篇文章介绍的内容是关于浅谈JS的this调用对象,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 查一下资料得知js的this是指向调用的对象。 只有这一句话很难理解那来做个写个dome。 代码如下: nbsp;html&g…

    2025年3月8日
    200
  • 关于JS数组遍历方法的总结

    JS的数组遍历是项目中必须用到的,为了写出优雅的代码,将方法用在对的地方,在这里将几种方法做个对比,这里用es6的方式展示出来,需要搭建转换es5环境,这不是这篇的重点,下一篇可以写这个。 一、for循环 使用频率最高,前端都会用,表示自己…

    编程技术 2025年3月8日
    200
  • js获取网页数据后存储为Excel格式

    这篇文章介绍的内容是关于js获取网页数据后存储为Excel格式,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 做项目的时候遇到了将网页中table表格的数据以excel形式存储的问题,自己将相关的代码分享给大家,希望对大家有…

    2025年3月8日 编程技术
    200
  • nodeJS模块简单用法

    这篇文章主要介绍了nodejs模块简单用法,结合实例形式简单分析了nodejs模块定义、引入、注册、启动等相关操作技巧,需要的朋友可以参考下 本文实例讲述了nodeJS模块简单用法。分享给大家供大家参考,具体如下: 1.定义Student模…

    2025年3月8日
    200
  • JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码

    这篇文章主要介绍了js弹窗 js弹出p并使整个页面背景变暗功能的实现代码,需要的朋友可以参考下 1.首先写一个遮罩层p,然后再写一个弹窗的p           提示          js弹窗 js弹出p,并使整个页面背景变暗      …

    2025年3月8日
    200
  • JavaScript调用模式与this关键字绑定的关系

    这篇文章主要介绍了javascript调用模式与this关键字绑定的关系 的相关资料,需要的朋友可以参考下 Invocation 调用 调用一个函数将暂停当前函数的执行,传递控制权和参数给新函数。 实参与形参不一致不会导致运行时错误,多的被…

    编程技术 2025年3月8日
    200
  • AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例

    这篇文章主要介绍了angularjs使用filter自定义过滤器控制ng-repeat去除重复功能,结合实例形式分析了angularjs自定义过滤器的定义及数组过滤相关操作技巧,需要的朋友可以参考下 本文实例讲述了AngularJS使用Fi…

    2025年3月8日
    200
  • JS实现字符串去重及数组去重的方法

    这篇文章主要介绍了js实现字符串去重及数组去重的方法,涉及javascript针对字符串与数组的遍历、判断、删除、添加等相关操作技巧,需要的朋友可以参考下 本文实例讲述了JS实现字符串去重及数组去重的方法。分享给大家供大家参考,具体如下: …

    2025年3月8日
    200

发表回复

登录后才能评论