nodejs移动端formidable上传图片

html代码:

<form enctype='multipart/form-data' method="post" action='/file/uploading'>

    <input class="weui_uploader_input" id="upload" name="upload" type="file" accept="image/jpg,image/jpeg,image/png,image/gif">

</form>

<script>

    $('#upload').on('change',function(){

        $(this).closest('form').submit();

    });

    $('form').submit(function(){
    
    //  return false;
    
    });

</script>

服务端js

var express = require('express');

var router = express.Router();

var formidable = require('formidable');

var fs = require('fs');

var gm = require('gm').subClass({imageMagick: true});

router.post('/file/uploading', function (req, res, next) {

//res.header( 'Content-Type','text/javascript;charset=utf-8');        //设置返回字符串编码

varform = newformidable.IncomingForm();//创建对象

form.uploadDir = global.dirname + "/public/upload/source";//设置临时文件存放的路径

form.encoding = 'utf-8';//设置上传数据的编码

form.keepExtensions = true;//设置是否保持上传文件的拓展名

form.maxFieldsSize = 4 * 1024 * 1024;//文件大小

form.parse(req, function (err, fields, files) {

    if (err) {

        res.render('/', {title: err});

        return;

    }

    var extName = 'jpg';//后缀名

    switch (files.upload.type) {

        case' image/pjpeg':

            extName = 'jpg';

            break;

        case 'image/jpeg':

            extName = 'jpg';

            break;

        case 'image/png':

            extName = 'png';

            break;

        case 'image/x-png':

            extName = 'png';

            break;

        case 'image/gif':

            extName = 'gif';

            break;

    }

    if (extName.length == 0) {

        res.send('上传文件类型有误!');

        return;

    }

    var avatarName = uuid.uuid(8, 16) + '_normal' + '.' + extName;

    var newPath = form.uploadDir + "/" + avatarName;

    fs.renameSync(files.upload.path, newPath);  //重命名

    response.writeHead(200, {"Content-Type": "text.html"});

    response.write("received image:");

    response.end();

});

原文链接:https://www.jianshu.com/p/6e3624d88c53

发表评论

登录后才能评论