最近做一个项目,关于用户数据和表单上传的项目,碰到了不少坑,这里总结的分享给大家,希望能够帮助大家。(小白,欢迎大家多交流)
多的就不说了,直接来代码吧!!
1、上传组件
说明一下,项目是基于vue框架的
<template>
<div class="newproduct">
<div class="topbox">
<div class="shopbox">
<img class="shopicon" src="/UploadFiles/2021-04-02/head.jpg">
说明,包含两个上传图片的组件,前面一个有multiple为多文件模式,即一次可选择多张图片,后面的是单文件模式。
2、接下来是图片的预览
viewimg($event) {
//获取当前的input标签
var currentObj = event.currentTarget;
//找到要预览的图片img标签,亦可动态生成
var img = currentObj.parentNode.children[0];
setImagePreview(currentObj, img);
function setImagePreview(docObj, imgObjPreview) {
if (docObj.files && docObj.files[0]) {
imgObjPreview.style.display = 'block';
imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
}
}
}
这一部分的主要功能是将选中的图片进行展示,当然啦,这里并没有出来多张图片的情况
3、核心部分,图片上传
/*采用formData形式上传图片和表单数据*/
upload: function() {
var _self = this;
var formData = new FormData();
var inputs = $("input.fileupload");
for (var i = 0; i < inputs.length; i++) {
var file = inputs[i];
if (inputs[i].files[0]) {
formData.append("file", file.files[0], file.files[0].name);
}
}
formData.append('barterCommodityname', _self.goodsname);
formData.append('barterSellingprice', _self.price);
formData.append('barterContactinformation', _self.phone);
formData.append('barterCommodityquantity', _self.number);
formData.append('barterCommodityaddress', _self.address);
formData.append('barterDescriptioninform', _self.goodsinfo);
formData.append('barterCategoryid', _self.goodstype);
var _self = this;
$.ajax({
type: 'POST',
url: 'http://10.145.0.05/goods/addGoods',
dataType: "json",
data: formData,
processData: false,
contentType: false,
success: function(data) {
console.log(data);
if (data.code == 200) {
console.log("success");
// _self.$router.push('/');
} else {
alert(data.message);
}
}
});
}
说明:
类似于formData.append(‘barterCategoryid', _self.goodstype); 是一种键值对的形式保存数据,而formData.append(“file”, file.files[0], file.files[0].name); 第一个参数为服务端接收的参数名,第二个为文件对象,第三参数为文件名称,这样可以将多个文件添加为数组的形式给服务器。
后端接收该类型的文件时类型指定为:MultipartFile类型
特别说明:
processData: false,
contentType: false,
这两句一定要加上,否则数据会被序列化,而导致后端不能识别
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。