zoukankan      html  css  js  c++  java
  • node+express+vue上传图片

    个人服务器搭建的差不多了,开始做一些基础功能,先从上传图片开始吧。

    前端用的vue。
    //html
     <div>
    <input type="file" name="file" accept=".jpg, .jpeg, .png" @change="uploadAvatar">
    </div>
    //js
    uploadAvatar(avatar) {
    var url = "http://localhost:3000";
    console.log(avatar.target.files[0])
    let file = avatar.target.files[0]
    let data = new FormData();
    data.append("file", file, file.name); 
    data.append('data', 112)
    console.log(data.get('file'))
     
    this.$http.post(url + '/product/zhutu', data).then(function(data) {
    console.log(data)
    }, function(response) {
    console.log(response)
    })
    }

    主要是后台,需要插件有,1.multiparty(传送图片)。2.images(图片处理)。3.uuidV1(生成唯一名字)

    //处理图片
    router.post('/zhutu', function(req, res, next) {
    console.log('tupian')
    var form = new multiparty.Form();
    form.parse(req, function(err, fields, files) {
    console.log(files.file[0])
    // //找到上传的图片上传之前的名字
    var orgFilename = files.file[0].originalFilename;
    console.log(orgFilename)
    // //切割orgFilename 找到图片的扩展名 以证明图片是什么格式的
    // //切割后是一个数组,找到数组最后一个
    var formate = orgFilename.split(".");
    // //拼接新的图片名称
    var fileName = uuidV1() + "." + formate[formate.length - 1];
    //      
    images(files.file[0].path) //Load image from file 
    .size(1920, 1276)
    .save("public/images/detail/" + fileName, {
    quality: 1000
    });
    //返回前台存储地址
    var src = "/images/detail/" + fileName;
     
    res.json({
    status: true,
    msg: src
    })
    });
    });
  • 相关阅读:
    View载入具体解释
    七、备忘录模式Memento(行为型模式)
    排序算法之直接插入排序
    IOS
    Matlab得到二值图像中最大连通区域
    MVC模式利用xib文件定制collectionCell
    五大算法思想—贪心算法
    jQuery鼠标悬停显示提示信息窗体
    J2EE基础总结(5)——EJB
    iOS 打开扬声器以及插入耳机的操作
  • 原文地址:https://www.cnblogs.com/ydam/p/10983572.html
Copyright © 2011-2022 走看看