图片上传到本地并显示上传的图片——HTML+JS+JAVA代码详解

HTML点击上传本地图片到页面 并在页面上显示上传的图片 以及遇到的问题 <div class="col-md-5"> <img id="img-avatar" src="../images/index/user.jpg" class="img-responsive" alt="无法显示默认头像" /> </div> <div class="col-md-offset-2 col-md-4"> <input id="chooseImage" type="file" name="file" accept="image/*. 阅读详情

前端页面

form表单进行一个设置

 <form action="" method="post" enctype="multipart/form-data">
            <div class="content-down">
                <div class="image-div">
                    <div class="image-title">
                        上传封面图片
                    </div>
                    <input type="file" class="image-input01" name="image01" id="image01" onchange="setinImagePreview(this)"  accept="image/png,image/jpeg,image/jpg" />
                    <div class="image-content" >
                        <img id="image_show01" src="/default/img/kong.jpg">
                    </div>
                </div>
                <div class="image-div">
                    <div class="image-title">
                        上传描述图片01
                    </div>
                    <input type="file" class="image-input" name="image02" id="image02"  onchange="setinImagePreview(this)" accept="image/png,image/jpeg,image/jpg" />
                    <div class="image-content" >
                        <img id="image_show02" src="/default/img/kong.jpg">
                    </div>
                </div>
                <div class="image-div">
                    <div class="image-title">
                        上传描述图片02
                    </div>
                    <input type="file" class="image-input" name="image03" id="image03"  onchange="setinImagePreview(this)" accept="image/png,image/jpeg,image/jpg" />
                    <div class="image-content" >
                        <img id="image_show03" src="/default/img/kong.jpg">
                    </div>
                </div>
                <div class="image-div">
                    <div class="image-title">
                        上传描述图片03
                    </div>
                    <input type="file" class="image-input" name="image04" id="image04"  onchange="setinImagePreview(this)" accept="image/jpg,image/jpeg,image/png,image/PNG" />
                    <div class="image-content" >
                        <img id="image_show04" src="/default/img/kong.jpg">
                    </div>
                </div>
            </div>
            </form>

JS响应:图片上传后在前台页面展示

function setinImagePreview(obj) {
    var file_id = document.getElementById(obj.id);
    console.log(obj.id);
    console.log(file_id);
    var imgUrl =window.URL.createObjectURL(file_id.files[0]);
    var image_div_id = "image_show" + obj.id.substring(obj.id.indexOf("0"));
    console.log(image_div_id);
    var image_div = document.getElementById(image_div_id);
    image_div.setAttribute('src',imgUrl);
}

JS响应:上传到后端进行处理

addCommodity是onclick响应事件

function addCommodity() {
    var commodity_name = $("#commodity_name").val();
    var commodity_price = $("#commodity_price").val();
    var commodity_total = $("#commodity_total").val();
    var classify = $("#classify").val();
    var create_time = new Date().getTime();
    var update_time = new Date().getTime();
    var formData = new FormData();
    formData.append("commodity_name", commodity_name);
    formData.append("commodity_price", commodity_price);
    formData.append("commodity_total", commodity_total);
    formData.append("classify", classify);
    formData.append("create_time", create_time);
    formData.append("update_time", update_time);
    var file01 = document.getElementById("image01").files[0];
    var file02 = document.getElementById("image02").files[0];
    var file03 = document.getElementById("image03").files[0];
    var file04 = document.getElementById("image04").files[0];
    formData.append("file01", file01, file01.name);
    formData.append("file02", file02, file02.name);
    formData.append("file03", file03, file03.name);
    formData.append("file04", file04, file04.name);
    $.ajax({
        type: 'POST',
        data: formData,
        processData: false, //必须false才会自动加上正确的Content-Type
        dataType: 'json',
        url: '/xcn_merchant/addCommodity',
        contentType: false,//必须false才会避开jQuery对 formdata 的默认处理
        success: function (json) {
            json = typeof json == 'string' ? JSON.parse(json) : json;
            if (json.code == 200) {
                alert(json.msg);
            } else {
                alert(json.msg);
            }
        },
        error: function (json) {
            json = typeof json == 'string' ? JSON.parse(json) : json;
            alert(json.msg);
        }
    });
}

Java接收前端传来的文件信息

 /**
     * 添加商品
     */
    @PostMapping(value = "/addCommodity")
    @ResponseBody
    public String addCommodity(
            HttpServletRequest request,
            @RequestParam String commodity_name,
            @RequestParam String commodity_price,
            @RequestParam String commodity_total,
            @RequestParam String classify,
            @RequestParam String create_time,
            @RequestParam String update_time,
            @RequestParam(value = "file01") MultipartFile file01,
            @RequestParam(value = "file02") MultipartFile file02,
            @RequestParam(value = "file03") MultipartFile file03,
            @RequestParam(value = "file04") MultipartFile file04
    ) throws IOException {
        JSONObject admin = mainPublicComponetAdmin.getAdminInfo(request);
        if (admin != null) {
            if (file01.isEmpty() || file02.isEmpty() || file03.isEmpty() || file04.isEmpty()) {
                return failReturn("文件为空,上传失败,请重新上传");
            }
            HashMap params = new HashMap();
            String commodity_id = KeyWorker.nextId() + "";
            String image01_id = KeyWorker.nextId() + "";
            String image02_id = KeyWorker.nextId() + "";
            String image03_id = KeyWorker.nextId() + "";
            String image04_id = KeyWorker.nextId() + "";
            String remark_id = KeyWorker.nextId() + "";
            String filePath_master = "classify/" + classify + "/" + commodity_id;
            File path_master = new File(RootPath + filePath_master);
            if (!path_master.exists()) {
                path_master.mkdir();
            }
            String filePath_slave = filePath_master + "/commodity_list";
            File path_slave = new File(RootPath + filePath_slave);
            if (!path_slave.exists()) {
                path_slave.mkdir();
            }
            String image01_url = path(file01, image01_id, filePath_master);
            String image02_url = path(file02, image02_id, filePath_slave);
            String image03_url = path(file03, image03_id, filePath_slave);
            String image04_url = path(file04, image04_id, filePath_slave);

            //公共params信息
            params.put("commodity_id", commodity_id);
            params.put("merchant_id", admin.getString("id"));
            JSONObject store = xcnMerchantServiceMerchant.selectStoreById(params);
            params.put("store_id", store.getString("store_id"));
            params.put("classify", classify);
            params.put("is_delete", "0");
            params.put("create_time", create_time);
            params.put("update_time", update_time);

            //image01——params——主图
            HashMap params_commodity = new HashMap();
            params_commodity.put("commodity_name", commodity_name);
            params_commodity.put("commodity_price", commodity_price);
            params_commodity.put("sales_total", "0");
            params_commodity.put("commodity_total", commodity_total);
            params_commodity.put("image_id", image01_id);
            params_commodity.put("image_url", image01_url);
            params_commodity.put("remark_id", remark_id);
            params_commodity.putAll(params);

            //image02——params——附图1
            HashMap params_image02 = new HashMap();
            params_image02.put("image_id", image02_id);
            params_image02.put("image_url", image02_url);
            params_image02.putAll(params);

            //image03——params——附图2
            HashMap params_image03 = new HashMap();
            params_image03.put("image_id", image03_id);
            params_image03.put("image_url", image03_url);
            params_image03.putAll(params);

            //image04——params——附图3
            HashMap params_image04 = new HashMap();
            params_image04.put("image_id", image04_id);
            params_image04.put("image_url", image04_url);
            params_image04.putAll(params);
            int i = xcnMerchantServiceMerchant.addCommodityOne(params_commodity, params_image02, params_image03, params_image04);
            if (i >= 1) {
                File image01 = new File(RootPath + image01_url);
                file01.transferTo(image01);
                File image02 = new File(RootPath + image02_url);
                file02.transferTo(image02);
                File image03 = new File(RootPath + image03_url);
                file03.transferTo(image03);
                File image04 = new File(RootPath + image04_url);
                file04.transferTo(image04);
                return success("添加商品成功");
            } else {
                return failReturn("添加失败,请检查信息重新添加");
            }
        } else {
            return failReturn("登录失效,请重新登录");
        }

    }
      /**
     * 小小的方法,处理主图片名称变为image_id名称
     *
     * @param image_id
     * @param RootPath
     * @return
     */
    public String path(MultipartFile file, String image_id, String RootPath) {
        String fileName = file.getOriginalFilename();
        String image_name = image_id + fileName.substring(fileName.indexOf("."));
        String path = RootPath + "/" + image_name;
        return path;
    }

关键在于处理图片路径和使用MultipartFile 的transferTo方法把图片保存到本地。

html图片的上传 用于存储上传成功后的图片 URL。修改还剩一些,例如,进行完这些上传的图片不显示。我们需要给隐藏于设置值,这样修改的图片才能显示。以上便可以实现图片的上传和修改。将原先imgurl部分修改为。以上便可以实现图片的上传。在这段代码中,隐藏域( 阅读详情

相关推荐

H5开发:使用H5、CSS、JS、JQUERY实现从本地选择图片、预览图片、上传图片列表

使用H5、CSS、JS、JQUERY实现从本地选择图片、预览图片、上传图片列表

smm的博客 3873

关于HTML中上传图片

关于HTML中上传图片 值得注意的是:当一个表单里面包含这个上传元素的时候,表单的enctype必须指定为multipart/form-data,method必须指定为post,浏览器才会认识并正确执行。但是还有一点,浏览器只允许用户点击&lt;input type="file"&gt;来选择本地文件,用JavaScript对&lt;input type="file"&gt;的value赋值是没...

喜欢做一些demo,和分享遇到的 BUG 4万+

Java上传图片并预览

需求,上传图片,并可以预览,需要强调的是必须选择的为图片,不然wuf

r0a0n0的专栏 9904

html上传图片后,在页面显示上传的图片

html上传图片后,在页面显示上传的图片1、html &lt;form class="container" enctype="multipart/form-data" method="post" id='formBox' name="form"&gt; &lt;input type="file" id="chooseImage" n

感恩、奋进、自信 6万+

Vue(Vue.js)+Servlet实现图片上传和显示

在完成新闻发布系统时,我们需要上传新闻图片和显示图片,Vue(Vue.js)+Servlet或许可以帮到你

dy0426的博客 3143

GUNS框架图片上传详解

1.html页面中的图片上传标签 2.对应html的js文件中 注意:只要保证上述图片三处红框跟定义的实体属性名保持一致即可。后台就可以拿到数据。 3.GUNS自定义avatar.tag标签 4.GUNS封装的js文件web-upload-object.js 5.UserMgrCointroller.java 6.编辑时获取之前上传的图片 参考第3点的红框路径,找到对应的Contro...

weixin_42590334的博客 3679

HTML本地上传图片并显示

这段代码创建了一个包含文件选择器和图片预览的简单 HTML 页面,并使用 JavaScript 监听文件选择器的 onchange 事件。一旦用户选择了一个文件,JavaScript 就会使用 FileReader API 读取文件并将其转换为数据 URL。然后,JavaScript 将数据 URL 设置为图片预览的 src 属性,以显示该图片。

weixin_46650094的博客 2482

Layui多图片上传以及中止上传、删除预览等相关操作

Layui多图片上传以及中止上传等相关操作完成品HTML代码upload.js要修改的代码,按Ctrl+Shift+F格式转换下,大概在139行将这段代码放到上面的大括号中Controller 完成品 上传前可删除图片,提交前将图片名称拼接 HTML代码 <div class="layui-form-item"> <label class="layui-form-la...

qq_34252360的博客 3229

Java实现图片的上传和显示

提示:前端Vue(Vue.js)+后端Servlet实现图片的上传和显示1)以上就是今天要讲的内容,本文仅仅简单介绍了Vue(Vue.js)+Servlet,用表单实现新闻图片上传和显示。2)需要注意的是,以上代码只实现了基本的图片上传和显示功能,还需要进一步优化和完善。例如,在处理文件上传时,没有对上传文件进行大小、类型等方面的验证,以防止恶意攻击或误操作导致的问题发生。同时,在保存上传文件时,还需要考虑文件名冲突、文件夹权限等诸多细节问题。😚😚。

小知识吖 4万+

解锁微信小程序Camera组件的隐藏技能:连续扫码背后的逻辑与陷阱

本文深入解析微信小程序Camera组件在连续扫码功能中的技术原理与优化方案,涵盖识别率提升、内存管理策略及典型问题排查。通过实战参数对比和代码示例,帮助开发者解决扫码枪应用中的性能损耗与界面卡顿问题,提升零售、物流等场景的工作效率。

weixin_29019241的博客 493

IOPaint模型部署教程

IOPaint是一款功能全面且强大的AI图像处理工具,它不仅免费开源,还由SOTA(State-of-the-Art,即最先进)AI模型驱动,为图像编辑和修复带来了前所未有的便利和高效。以下是对IOPaint的详细介绍:

SJJS_1的博客 1542

前端图片裁剪上传全流程详解:从预览到上传的完整流程

本文详细介绍了前端实现图片裁剪上传的完整流程,包括本地预览、用户交互裁剪、实时预览裁剪结果、获取裁剪后的File对象以及上传前的处理逻辑。技术选型上,使用原生HTML/JavaScript结合Cropper.js库,提供了完整的代码示例,适合直接应用于实际项目。文章还强调了图片裁剪上传在用户头像设置、商品图上传等场景中的重要性,能够有效减少冗余数据、精准控制展示内容并降低服务器处理压力

Micro麦可乐的博客 7541

有史以来最小的GIF/png/jpg/jpeg

昨天我对图像进行了 base64 编码,这样我就可以将它发送到 CouchDB 以测试我正在为客户编写的一些代码。它让我想起了我之前在远程服务器上设置 cookie 时所做的事情。基本上,一个小的 PHP 脚本被放在远程服务器上,它接受几个 GET 参数并根据它们的值设置一些 cookie。然后脚本输出一个 1x1 的透明 GIF。本地服务器上的 PHP 脚本生成了一个 IMG 标签,该标签链接到该图像并根据本地服务器上的 COOKIES 设置参数。

凌凌1301的博客 1417

Spring Boot上传文件/图片&图片显示

一、文章前言 1. 本文章主要讲述如何在spring boot下上传文件,尤其是上传图片并显示,例如用户注册的时候上传了头像,此时头像会加载在注册页面上面,在Spring MVC的时候,这样实现还好实现,但是到了Spring Boot就并不是这样 2. 小伙伴也发现了,在使用部署到Tomcat服务器形式的项目,上传到的图片直接上传到Tomcat服务器中,都能访问,但是在Spring Boot中...

TianXinCoord的博客 3万+

ESP32设备驱动-TM1637-驱动4位7段数码管

TM1637是一款带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成了MCU数字接口、数据锁存、LED高压驱动、键盘扫描等功能。 TM1637使用DIP20/SOP20封装,主要适用于电磁炉、微波炉、小家电的显示驱动。

视觉与物联智能 2118

3 ATK2(AUTOSAR OS)代码移植-目标硬件及编译环境简介

该部分介绍ATK2代码移植的目标硬件以及编译环境

xiaoduanduansad的博客 719

将图片从本地上传到服务器的过程详解

将图片从本地上传到服务器主要分为三个过程 第一,准备工作 第二,图片显示在前端页面 第三,发送给服务器 详情: 准备工作 定义一个input标签,type=file,然后让他隐藏,用一个lable标签设置它的for属性指向这个input,这样就可以通过设置lable的格式,达到文件上传的功能 &amp;lt;label for=&quot;fileupload&quot; class=&quot;updata_file&quot;&amp;gt;点...

shijiujiu33的博客 6万+

手把手教你RK3568 MIPI屏驱动适配,纯干货!

RK3568 作为一款高性能的多媒体处理器,在嵌入式领域中备受瞩目。它采用了先进的 22nm 制程工艺,搭载四核 Cortex-A55 处理器,这种架构为芯片提供了高效的功耗比,使其在运行各种复杂任务时,既能保证性能,又能有效控制功耗。在实际应用中,无论是多任务处理还是运行大型应用程序,RK3568 都能凭借其四核 Cortex-A55 处理器,实现流畅的操作体验,满足智能设备对高性能和低功耗的需求。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4071

java前端上传图片保存到本地文件夹

废话不多说。上代码。jar包也给你们搞来了。。 后端java代码 import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springf...

汤圆玛奇朵的博客 6291

基于matlab的LFM脉冲压缩仿真

传统雷达测距是通过发射点频脉冲串实现的,通过发射脉冲与回波的时延确定目标的距离。此类方法易于实现,对接收机的要求较低。一般要获取更好的距离分辨力,需要增加发射信号的带宽,对于点频脉冲信号即需要减小发射脉冲宽度;而为获取更大的探测距离,提升雷达威力,则需要发射更大占空比的脉冲串。由于点频信号的时宽带宽积约等于1,因此不能同时增加信号的时宽和带宽。若要保持距离分辨力,增大占空比就需要减少雷达的脉冲重复周期(PRT)。这样会减小雷达的无模糊探测距离,也会造成目标回波频繁被遮挡,损失雷达威力。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 1770

YOLOv11涨点改进 | 全网独家下采样改进、细节涨点篇 | TGRS 2025 | 引入PWD参数化小波下采样模块,减少下采样过程中小目标的关键细节丢失,即插即用,助力高效涨点发论文

本文提出了一种改进YOLOv11小目标检测性能的参数化小波下采样(PWD)模块。PWD通过小波变换保留目标细节信息,增强频率域特征表达,有效解决了传统下采样导致的小目标信息丢失问题。该模块采用双分支设计,结合自适应频率选择和空间补偿机制,在红外图像和低光场景中表现出更强的抗干扰能力。实验表明,PWD能显著提升YOLOv11对弱纹理和低对比度目标的检测精度,同时保持计算效率。文章详细介绍了PWD的结构原理、实现代码及在YOLOv11中的集成方法,为小目标检测提供了有效的改进方案。

Ai缝合怪、助力小伙伴高效发论文 233

java+web上传图片保存到数据库

1.上传图片:html代码示例。 <div class="form-group col-sm-12"> <label class="col-sm-2 control-label no-padding-right"><span class="ytRequired"></span>头像:</label> <div ...

代码改变世界 9149

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

纯 HTML加JS 压缩图片并上传 Java

最近在写移动端web项目,遇见一个上传图片的需求,一开始没有做任何优化,直接用ajax上传,结果就是被客户一顿臭叼,上传5张照片怎么要这么久 !啥玩意 后来做出优化,在PC端上传没毛病 嗖的一下就请求好了,在移动端上就 响应特别慢,目前的手机拍照图片大小都是很大的,比如我的 华为P20拍一张HDR照片就已经将近10MB的内存了,PC使用的是宽带影响非常小,但是移动端就不能了。 不管是 把图片转为base64 编码传到后端,这个base64编码长度就已经是很大 最后想到 压缩图片,效果非常非常显著 马上开始!

半只 910

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

java点击上传上传mysql并显示图片_java实现图片的上传与展示实例代码

前言在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢?下面话不多说了,来一起看看详细的介绍吧一、注意事项:1,该项目主要采用的是springboot+thymeleaf框架2,代码展示的为ajax完成图片上传(如果不用ajax只需要改变相应的form表单配置即可)二、效果实现:1,页面效果:2,文件夹路径下就会...

weixin_33095355的博客 533

Js调用本地摄像头拍照并上传到web服务器:实现简易拍照上传功能

Js调用本地摄像头拍照并上传到web服务器:实现简易拍照上传功能 去发现同类优质开源项目:https://gitcode.com/ 在数字化时代,图像采集和上传功能已经变得至关重要。今天,我们将为您介绍一个开源项目——Js调用本地摄像头拍照并上传到web服务器,它提供了一个简洁的解决方案,让用户能够轻松调用本地摄像头进行拍照,并将照片上传到Web服务器。 项目介绍 Js调用本地摄像头拍照并上传到w...

gitblog_06725的博客 1085
上一篇: js实现图片轮播:html+css直接搞定
下一篇: 学习Redis缓存基础篇(01)——基础知识、下载及安装~N多天后的复习总结,Redis真的得会!!!!!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值