明霞山资源网 Design By www.htccd.com
最近做一个项目,关于用户数据和表单上传的项目,碰到了不少坑,这里总结的分享给大家,希望能够帮助大家。(小白,欢迎大家多交流)
多的就不说了,直接来代码吧!!
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,
这两句一定要加上,否则数据会被序列化,而导致后端不能识别
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
明霞山资源网 Design By www.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com
暂无评论...