分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

向服务器上传文件

发布时间:2023-09-06 02:30责任编辑:蔡小小关键词:暂无标签
   模拟form表单
 
前端:
 
var formData = new formData();//自带的函数formData.append(‘_id‘,‘对应的文本内容‘);//文本formData.append(‘companyName‘,对应的文本内容);//文本formData.append(‘companyScale‘,对应的文本内容);//文本formData.append(‘companyLogo‘,this.companyLogo_model[0].files[0]);//(‘companyLogo‘,要上传的对应文件信息),以图片为例//通过ajax上传$.ajax({ ???type : ‘post‘, ???data : formData, ???contentType : false,//contentType与processData为false不可缺 ???processData : false, ???success : $.proxy(this.handleModifySucc,this))//上传成功后的回调函数})handleModifySucc: function(data){ ???console.log(data);//输出后端返回的值,用于其他操作}

  

后端:
 
controller层:
//获取前端换过来的数据const ModifyCompany = (req,res)=>{ ???let {companyName,companyScale} = req.body; //获取文本信息 ,get传过来的用req.query;post 传过来的用req.body接收 ???let urlpath = req.files.companyLogo[0].path.replace(/\\/,‘/‘);//获取文件信息, 路径格式有问题,将‘\‘转为‘/‘ ???????companyModel.updateCompany({_id},{ ???????companyName,s ???????companyScale, ???????companyLogo : urlpath ???},result=>{ ???????if(result.ok){ ???????????res.json({ ?//传给前端的数据 ???????????????status : true, ???????????????info : ‘更新成功‘ ???????????}) ???????}else{ ???????????res.json({ ???????????????status : false, ???????????????info : ‘更新失败‘ ???????????}) ???????} ???})}
Model层的companyModel的部分内容:
 
var Company = mongoose.model(‘cpmpany‘,{ ???companyName, ???companyScale, ???companyLogo})//数据库修改的函数 ???id,companyInfo传的都是对象const updateCompany = function(id,companyInfo,cb){ ???Company.update(id,{$set:companyInfo},(result)=>{ ???????cb(result); ???})}//导出模块module.exports = { ???updateCOmpany}

  

router层部分内容:

var express = require(‘express‘);var route = express.Router();var companyController = require(‘../controller/company‘);var multer = require(‘multer‘); ??//需要局部安装mmulter ?cnpm install multer -S//开始var storage = multer.diskStorage({ ???//第一个是文件存储在服务器的位置 ???destination : function(req,file,cb){ ???????cb(null,‘./public/img‘); ???}, ???//第二个是文件命名 ???filename : function(req,file,cb){ ???????cb(null,Date.noe() + ‘-‘ + file.originalname);//因为上传的文件名可能会有冲突,为了保证每个名字都是独一无二的,便为他们加上时间戳 ???}})var upload = multer({storage : storage});//规定当字段可以接受图片一次做多可传多少张var cpUpload = upload.fileds([{name : ‘companyLogo‘,maxCount : 1}]);route.post(‘/modifyCompany‘,cpUpload,companyController.modifyCompany);//cpUpload不能丢,否则后端不能接收到数据module.exports = router;

  

 

向服务器上传文件

原文地址:https://www.cnblogs.com/AlisaWj/p/10280835.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved