Golang实战项目-B2C电商平台项目(6)
Golang实战项目-B2C电商平台项目(6)
商品新增中上传图片
- 商品新增中上传图片使用的是KindEditor的多文件上传组件.文件上传为异步上传方式.可以上传多个文件.
- 当文件上传后要求服务器端返回数据格式如下.应该是map转换为json而不应该是结构体转换为json
- error:表示图片上传的状态
- url:表示图片上传后回显地址
- message:表示图片上传失败后显示的内容
- 上传图片域的默认名称为imgFile
- 多文件上传本质是每次上传一张图片,多次调用同一个控制器
- 在保存图片时要考虑图片重名的问题,使用随机数+时间戳保证图片名称唯一
import "github.com/gorilla/mux"var (Router = mux.NewRouter()CurrPath = "http://localhost:80/" //当前项目urlHEADER_CONTENT_TYPE = "Content-Type" //Content-TypeJSON_HEADER = "application/json;charset=utf-8" //json
)
- 在item/TbItemService.go添加函数实现图片上传
func imageUploadService(f multipart.File, h *multipart.FileHeader) map[string]interface{} {m := make(map[string]interface{})b, err := ioutil.ReadAll(f)if err != nil {m["error"] = 1m["message"] = "上传失败,服务器错误"return m}//纳秒时间戳+随机数+扩展名rand.Seed(time.Now().UnixNano())fileName := "static/images/" + strconv.Itoa(int(time.Now().UnixNano())) + strconv.Itoa(rand.Intn(1000)) + h.Filename[strings.LastIndex(h.Filename, "."):]err = ioutil.WriteFile(fileName, b, 0777)if err != nil {m["error"] = 1m["message"] = "上传失败,保存图片时错误"return m}m["error"] = 0m["url"] = commons.CurrPath + fileNamereturn m
}
- 在item/TbItemController.go添加函数,并配置映射
//图片上传
func imagesUploadController(w http.ResponseWriter, r *http.Request) {file,fileHeader,err:=r.FormFile("imgFile")if err!=nil{m:=make(map[string]interface{})m["error"]=1m["message"]="接收图片失败"b,_:=json.Marshal(m)w.Header().Set(commons.HEADER_CONTENT_TYPE,commons.JSON_HEADER)w.Write(b)return}m:=imageUploadService(file,fileHeader)b,_:=json.Marshal(m)w.Header().Set(commons.HEADER_CONTENT_TYPE,commons.JSON_HEADER)w.Write(b)
}func ItemHandler() {commons.Router.HandleFunc("/showItem", showItemController)commons.Router.HandleFunc("/item/delete", delByIdsController)commons.Router.HandleFunc("/item/instock", instockController)commons.Router.HandleFunc("/item/offstock", offstockController)commons.Router.HandleFunc("/item/imageupload", imagesUploadController)//图片上传
}
Golang实战项目-B2C电商平台项目(6)相关推荐
- Golang实战项目-B2C电商平台项目(8)
Golang实战项目-B2C电商平台项目(8) 商品描述新增 商品描述表(tb_item_desc)和商品表(tb_item)具有主外键关系,商品的主键也是商品描述的主键,使用工具函数生成的主键也当作 ...
- 【SSM项目】电商平台项目第5天——商品录入【1】
课程目标 目标1:完成商品分类功能 目标2:了解电商概念SPU 和SKU 目标3:掌握富文本编辑器的使用 目标4:掌握上传服务器FastDFS 目标5:掌握angularJS图片上传 1.商品分类 1 ...
- 【项目精选】基于Spring Boot的综合性B2C电商平台--迷你天猫商城
迷你天猫商城 点击下载源码 介绍 迷你天猫商城是一个基于Spring Boot的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确 ...
- JAVA毕设项目社区电商平台系统(java+VUE+Mybatis+Maven+Mysql)
JAVA毕设项目社区电商平台系统(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Web ...
- 【图解版】B2C电商平台解决方案
Xmind下载地址 功能架构+技术架构 关键词,B2C,电商平台,解决方案,架构图 展开图 完全展开图
- 怎么做好B2C电商平台的粉丝深度与精细化运营?
电商模式的不断发展,电商模式变的越来越多,B2C就是其中一种,可以说是比较主流的电商模式.那么怎么做好B2C电商平台的粉丝深度与精细化运营?下面是易族智汇javashop为您编辑整理的,欢迎阅读,仅供 ...
- b2c电商平台建设不能忽略了这些
电子商务的发展带动了一批又一批传统行业的变革,在很大程度上,电子商务使企业可以用小的成本进入全球化市场,让中小企业有可能拥有和大企业一样的信息资源,提升企业的竞争力.近期,小编发现, "b2 ...
- css网页设计实例代码_大型电商平台设计实例:电商平台项目工程、数据库选型、代码库...
电商平台微服务体系架构 经过一系列的微服务设计, 下面使用一张维导图完整表示这个电商平台的微服务架构设计模型,如图 3-6 示. 这是一个为简单的电商平台微服务架构设计模型,并且使用了粗粒度的微服务划 ...
- 大型电商平台设计实例:电商平台项目工程、数据库选型、代码库
电商平台微服务体系架构 经过一系列的微服务设计, 下面使用一张维导图完整表示这个电商平台的微服务架构设计模型,如图 3-6 示. 这是一个为简单的电商平台微服务架构设计模型,并且使用了粗粒度的微服务划 ...
- 如何对一个B2C电商平台数据建模-3-订单
综述 假定为一个B2C的电商公司 对于一般的零售或者生产公司来说,订单/采购单收入和成本的最大来源.本章主要讨论如何建立一个通用的销售订单和采购单模型 原文见:数据建模3-订单 逻辑模型 订单相关业务 ...
最新文章
- android switcher控件,Android ViewSwitcher 的功能与用法
- 转 Hystrix入门指南 Introduction
- YOLOv5发布第六个版本,支持一键适配OpenVINO/OpenCV DNN部署
- 监控员工离职倾向系统已被下架,网友:劝你善良
- FTPClient.listFiles() 放到linux上,返回值为null或数组长度为0
- 开关怎么使用_水龙头漏水怎么办?使用时把控开关力度很重要
- 荣耀Play3新版曝光:麒麟710A加持 其他配置不变
- java在线支付---04_编写易宝支付的客户端加密工具类
- 火狐marquee_火狐不支持marquee解决方案
- 从零基础入门Tensorflow2.0 ----九、44.5 keras转换成具体函数
- Spring Cloud:Security OAuth2 自定义异常响应
- C#连接Oracle数据库
- 思考(六十四):游戏中的角色ID问题
- 杭州电子科技大学acm--2021
- jsLint 检查分析
- win10重装系统后连不上公司服务器,Win10重装系统后网络连接不了,重装win10系统后不能上网解决方法...
- 中年网易,生存像是一种幸运
- 计算机技术在建模中的作用,谈计算机在数学建模中的作用
- 全球各大运营商代码。方便国外卡的朋友修改运营商显示
- 拉格朗日插值法 【python】