纯js调用Servlet图片上传(XMLHttpRequest/FormData方式IE10+才行)(获取参数为空的问题)

本文主要是介绍纯js调用Servlet图片上传(XMLHttpRequest/FormData方式IE10+才行)(获取参数为空的问题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JS端

    //上传文件方法
    function upladFile() {
        //纯js调用Servlet图片上传(XMLHttpRequest/FormData方式IE10+才行)
        //注意(浏览器高速模式/IE10+才行,IE10-不支持FormData())
        var form = new FormData(); // FormData 对象
        form.append("employeeId", "11111111111111111111111111111"); // 文件对象
        form.append("fileFlag", "12");
        form.append("base64Data", "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEBLAEsAAD/2wBDAAgGBgc");

        var url = "http://.../jsUploadBase64Servlet";
        var xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
        xhr.open("post", url); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
        //xhr.setRequestHeader("Content-Type", "
application/x-www-form-urlencoded");//表单数据传输
        //xhr.setRequestHeader("Content-Type", "
multipart/form-data");//二进制数据传输
        //xhr.setRequestHeader("Content-Type", "
application/json");//Json数据传输

        xhr.send(form); //开始上传,发送form数据
        
        alert("Finish!!!");
    }


Java端

        //like12 add,bug,20190331
        //form提交的时候,enctype为mutilpart/form-date,以二进制形式传输
        //加上这两句,重新封装request,再接收参数就可以了
        MultipartResolver resolver = new CommonsMultipartResolver(
                request.getSession().getServletContext());
        MultipartHttpServletRequest multiRequest = resolver.resolveMultipart(request);
        
        String employeeId = multiRequest.getParameter("employeeId");
        String fileFlag = multiRequest.getParameter("fileFlag");
        String base64Data = multiRequest.getParameter("base64Data");
        System.out.println("---" + employeeId);
        System.out.println("---" + fileFlag);
        System.out.println("---" + base64Data);

这篇关于纯js调用Servlet图片上传(XMLHttpRequest/FormData方式IE10+才行)(获取参数为空的问题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/816540

相关文章

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

虚拟机与物理机的文件共享方式

《虚拟机与物理机的文件共享方式》文章介绍了如何在KaliLinux虚拟机中实现物理机文件夹的直接挂载,以便在虚拟机中方便地读取和使用物理机上的文件,通过设置和配置,可以实现临时挂载和永久挂载,并提供... 目录虚拟机与物理机的文件共享1 虚拟机设置2 验证Kali下分享文件夹功能是否启用3 创建挂载目录4

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@