Node使用 Express框架,实现文件上传

一 安装依赖包

 

npm install multer --save

 

二 客户端上传文件

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form action="http://localhost:3000/test/upload" method="post" enctype="multipart/form-data">
            <div>
                <input name="mobile" placeholder="请输入电话号码"/>
            </div>
            <div>
                <input type="file" name="photo" />
            </div>
            <div>
                <button type="submit">提交</button>
            </div>
        </form>
    </body>
</html>

 

三 服务器接受文件

 

const express = require('express');
const router = express.Router();
const mysql = require('mysql');
var multer = require('multer');
var upload = multer({
    storage : multer.diskStorage({ // 只能从dest、storage中二选一
        destination : (req,file,cb)=>{
            cb(null,process.cwd()+'/uploads');
        },
        filename : (req,file,cb)=>{ // 将上传的文件重新命名
            cb(null,file.fieldname+new Date().getTime()+file.originalname.substring(file.originalname.lastIndexOf('.')));
        }
    })
});

let conn = mysql.createConnection({
    host : 'localhost',
    user : 'root',
    password : '123456',
    database : 'ionic'
});

conn.connect();

/*
 * 接收图片
 */

router.post('/upload',upload.single('photo'),(req,res,next)=>{
    res.setHeader('Access-Control-Allow-Origin','*'); // 跨域
    let sql = 'update user set photo=? where mobile=?';
    let params = [req.file.filename,req.body.mobile];
    conn.query(sql,params,(err,result)=>{ // 写入数据库
        if(err){
            res.json({
                code : 0,
                msg : '[INSERT ERROR] - '+err.message
            });
        }else{
            res.json({
                code : 1,
                msg : '上传成功',
                data : {
                    filename : req.file.filename
                }
            });
        }
    });
});

module.exports = router;

 

 

 

转载于:https://www.cnblogs.com/sea-breeze/p/8686131.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值