码迷,mamicode.com
首页 > Web开发 > 详细

向服务器上传文件

时间:2019-01-17 10:54:16      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:不可   多少   company   对象   mon   logo   any   文件存储   var   

   模拟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;

  

 

向服务器上传文件

标签:不可   多少   company   对象   mon   logo   any   文件存储   var   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!