七牛多文件上传(node formidable)

html

用的vant的上传组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入样式文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vant@2.2/lib/index.css">

    <!-- 引入 Vue 和 Vant 的 JS 文件 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vant@2.2/lib/vant.min.js"></script>
    <script src="https://cdn.bootcss.com/axios/0.19.0-beta.1/axios.min.js"></script>
</head>
<body>
<div id="app">
    <van-uploader  multiple :after-read="afterRead" />
</div>
<script>
    // 在 #app 标签下渲染一个按钮组件
    new Vue({
        el: '#app',
        //template: `<van-button>按钮</van-button>`
        data:{
          url:'http://localhost:3003/upImg'
        },
        methods: {
            afterRead(file) {
                // 此时可以自行将文件上传至服务器
                console.log(file);
                let params = new FormData()
                if(file instanceof Array){
                    for(let i=0;i<file.length;i++){
                        params.append("file"+i,file[i].file)
                    }
                }else{
                    params.append("file",file.file)
                }

                let config = {
                    header:{
                        "Content-Type":"multipart/form-data"
                    }
                }
                axios.post(this.url,params,config).then(res=>{
                    console.log(res)
                }).catch(err=>{

                })
            }
        }
    });
    // 调用函数组件,弹出一个 Toast
    vant.Toast('提示');
</script>
</body>
</html>

node

  var express = require('express');
var fs = require('fs');
var path = require('path');
var qiniu = require('qiniu');
var qn = require('./qiniuMain')
var app = express();
app.all('*',function(req,res,next){
    res.header('Access-Control-Allow-Origin','*');//*表示可以跨域任何域名都行 也可以填域名表示只接受某个域名
    res.header('Access-Control-Allow-Headers','X-Requested-With,Content-Type');//可以支持的消息首部列表
    res.header('Access-Control-Allow-Methods','PUT,POST,GET,DELETE,OPTIONS');//可以支持的提交方式
    res.header('Content-Type','application/json;charset=utf-8');//请求头中定义的类型
    next();
});

//结果包装函数
let result = function (obj,bool){
    if(bool){
        return {status:0,data:obj};
    }else{
        return {status:1,data:obj};
    }
}

//上传图片
app.post("/upImg",function(req,routerRes){
    try{
        qn.upImg(req,function(res){
            console.log('res',res);
            return routerRes.send('hahhaha')
            /*if(res.status == 0){
                return routerRes.json(result(res.data,true));
            }else{
                return routerRes.json(result(res.msg,false));
            }*/
        });
    }catch(err){
        if(err){
            console.log('trycatch报错====',err);
        }
    }
})
var server = app.listen(3003, function() {
    var host = server.address().address;
    var port = server.address().port;
    console.log('running3003');
});



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基于Vue的一些资料 内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 element★...
    尝了又尝阅读 1,187评论 0 1
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,341评论 0 3
  • 专注全栈大前端,爱前端整理了一批2019年最新WEB前端教学视频,不论是零基础想要学习前端还是学完在工作想要提升自...
    大前端圈子阅读 2,424评论 0 3
  • 人生最宝贵的三种感情:亲情、爱情、友情。缺少任何一种,我们的人生都是不完美的,有可能我们的性格也是...
    荷包蛋的小屋阅读 523评论 4 8
  • 喜欢做饭不是一天两天的事情了,有时候在想,等哪天不工作了,自己肯定去开一家私房菜馆。每个人都有自己私房的兴趣...
    马小渔阅读 267评论 0 1