WebUploader 上传图片并提交表单(一)

2024-04-26 00:08

本文主要是介绍WebUploader 上传图片并提交表单(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

WebUploader 是由百度开发的一个上传文件的框架,简单上传文件可以查看官网的两个demo。
由于自己需要上传用户信息,和用户照片,直接使用官网的demo,只能得到图片,于是花了一下午时间研究了一下WebUploader。
首先简单说明一下WebUploader如何传递文件给后台

  // 实例化uploader = WebUploader.create({pick: {id: '#filePicker-2',label: '点击选择图片'},formData: {uid: 123,username:0},dnd: '#dndArea',paste: '#uploader',swf: '<%=ctxPath%>/lib/webuploader/0.1.5/Uploader.swf',chunked: false,chunkSize: 512 * 512,server: '<%=ctxPath%>/Coach/updateImg.do',// runtimeOrder: 'flash',// accept: {//     title: 'Images',//     extensions: 'gif,jpg,jpeg,bmp,png',//     mimeTypes: 'image/*'// },// 禁掉全局的拖拽功能。这样不会出现图片拖进页面的时候,把图片打开。disableGlobalDnd: true,fileNumLimit: 300,fileSizeLimit: 200 * 1024 * 1024,    // 200 MfileSingleSizeLimit: 50 * 1024 * 1024    // 50 M});

如上所示,图片上传是通过server 的url。
formData 内的信息可以通过报文信息发现也一起传给了服务器。
对于如何返回服务器的响应,通过查看官方文档,我们可以找到如下函数,其中ret就是服务器的响应信息。

这里写图片描述

这里介绍两种上传图片及表单信息的方法
第一种方式
通过以上我们就能够自然而然的知道如何上传图片以及表单信息。
我们可以通过设置FormData内的值,来实现图片和信息一起传入服务器中。
这里需要注意一点,formdata内的值不能在WebUploader实例化式赋值,因为在此时赋值时,表单信息为空,所以得到的值一直为空

具体方式如下,首先在WebUploader实例化时申明变量,然后通过使用uploadBeforeSend函数,具体信息如下

这里写图片描述

其中data参数就是我们要的。我们通过对data.xxxx赋值来向服务器传参。

以下是部分代码:
1 首先在Wepuploader 初始化是设置传参变量

// 实例化
uploader = WebUploader.create({
pick: {
id: '#filePicker-2',
label: '点击选择图片'
},
formData: {
//设置传入服务器的参数变量
//注意不要在此赋值
uid: 123,
user:0
},
dnd: '#dndArea',
paste: '#uploader',
swf: '<%=ctxPath%>/lib/webuploader/0.1.5/Uploader.swf',
chunked: false,
chunkSize: 512 * 512,
server: '<%=ctxPath%>/Coach/updateImg.do',
// 禁掉全局的拖拽功能。这样不会出现图片拖进页面的时候,把图片打开。
disableGlobalDnd: true,
fileNumLimit: 300,
fileSizeLimit: 200 * 1024 * 1024, // 200 M
fileSingleSizeL * 1024 * 1024 // 50 M
});

我在formData中设置了两个变量 uid=123和 user=0.
${“username”}.val() 是获得表单username的值
使用uploadBeforSend函数为变量赋值

uploader.on( ‘uploadBeforeSend’, function( object, data,header ) {

        // 修改data可以控制发送哪些携带数据。data.user = $("#username").val();}

这里写图片描述
查看报文信息
这里写图片描述

我们可以看到在报文信息中 user值为tt,至此我们就成功的把表单信息和图片传给服务器

3 将图片及信息传给后台,这里我是用springmvc

@RequestMapping(“/updateImg.do”)
public @ResponseBody AjaxResult uploadImg(HttpServletRequest req,HttpServletResponse resp) {

    System.out.println(req.getParameter("user"));MultipartHttpServletRequest mul=(MultipartHttpServletRequest)req;Map<String,MultipartFile> files=mul.getFileMap();String fileName;File targetFile;String targetFileName=null;String uploadUrl=req.getSession().getServletContext().getRealPath("/")+"upload";File dir=new File(uploadUrl);System.out.println(dir);if(!dir.exists()) {dir.mkdirs();}for(MultipartFile file:files.values()) {fileName=file.getOriginalFilename();targetFile=new File(uploadUrl+"/"+fileName);targetFileName=uploadUrl+"\\"+fileName;if(!targetFile.exists()) {try {targetFile.createNewFile();file.transferTo(targetFile);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}System.out.println("上传成功");AjaxResult ajax;if(targetFileName !=null) {ajax=new AjaxResult("1", targetFileName);}else {ajax=new AjaxResult("0","文件不存在");}return ajax;}

如上我们通过req.getparameter(“user”)方式来获得跟随图片一起传入的参数,这里我使用json作为返回参数,是为第二种方式做准备,大家可以把函数变成void
- 如 @RequestMapping(“/updateImg.do” )
public void update(HttpRequest req,HttpResponse resp)

我将通过下一篇来介绍第二种方式传值,思路其实很简单就是通过服务器返回图片信息,再通过form表单提交表单信息和图片信息

这篇关于WebUploader 上传图片并提交表单(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/936179

相关文章

GitLab文件的上传与下载方式

《GitLab文件的上传与下载方式》:本文主要介绍GitLab文件的上传与下载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录GitLab 项目拉取到本地GitLab 项目上传方法方法 1:本地项目未初始化Git方法 2:本地项目已初始化GitGitLab 上

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

Java应用如何防止恶意文件上传

《Java应用如何防止恶意文件上传》恶意文件上传可能导致服务器被入侵,数据泄露甚至服务瘫痪,因此我们必须采取全面且有效的防范措施来保护Java应用的安全,下面我们就来看看具体的实现方法吧... 目录恶意文件上传的潜在风险常见的恶意文件上传手段防范恶意文件上传的关键策略严格验证文件类型检查文件内容控制文件存储

Java实现图片淡入淡出效果

《Java实现图片淡入淡出效果》在现代图形用户界面和游戏开发中,**图片淡入淡出(FadeIn/Out)**是一种常见且实用的视觉过渡效果,它可以用于启动画面、场景切换、轮播图、提示框弹出等场景,通过... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规

MySQL中的两阶段提交详解(2PC)

《MySQL中的两阶段提交详解(2PC)》:本文主要介绍MySQL中的两阶段提交(2PC),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录引言两阶段提交过程sync_binlog配置innodb_flush_log_at_trx_commit配置总结引言在Inn

Java实现MinIO文件上传的加解密操作

《Java实现MinIO文件上传的加解密操作》在云存储场景中,数据安全是核心需求之一,MinIO作为高性能对象存储服务,支持通过客户端加密(CSE)在数据上传前完成加密,下面我们来看看如何通过Java... 目录一、背景与需求二、技术选型与原理1. 加密方案对比2. 核心算法选择三、完整代码实现1. 加密上

将图片导入Python的turtle库的详细过程

《将图片导入Python的turtle库的详细过程》在Python编程的世界里,turtle库以其简单易用、图形化交互的特点,深受初学者喜爱,随着项目的复杂度增加,仅仅依靠线条和颜色来绘制图形可能已经... 目录开篇引言正文剖析1. 理解基础:Turtle库的工作原理2. 图片格式与支持3. 实现步骤详解第