亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

node.js實現多圖片上傳實例

2019-11-20 14:57:07
字體:
來源:轉載
供稿:網友

先上效果圖:

這是我當時做多圖片的代碼,拿出來給大家借鑒一下(有些地方需要親們自己改一下,大方向是對的)

總共涉及到三處文件(常規來說)

1.路由入口文件(我這里是/routes.js,很多時候會在/app.js)

復制代碼 代碼如下:

  //添加美食
  app.all('/add', users.add);

2.路由控制器文件(我這里是/routes/users.js)
復制代碼 代碼如下:

//添加美食
exports.add = function (req, res) {
   if (req.method == "GET") {
        var user = {};
     if(req.session.user){
         user = req.session.user;
     }
    res.render("users/food_add", {title:'發布美食-'+config.name,name:config.name,user:user});
  } else  if (req.method == "POST") {
    //獲取數據
    var x = req.body.x;
    var y = req.body.y;
    var cat_id = req.body.cat_id;
    var cat_name = req.body.cat_name;
    var address = req.body.address;
    var title = req.body.title;
    var desc = req.body.desc;
    var content = req.body.content;
    var pics = '';
    var price = req.body.price;
    var tags = req.body.tags;
    var add_time = Date.parse(new Date())/1000;
    var support = 0;
    var uid = req.body.uid;

    //處理圖片上傳
    //console.dir(req.files);

    var file_obj = req.files.pics;
    //console.log(file_obj.length);
    var file_obj2 = [];
    for(var i=0;i<file_obj.length;i++){
        if(file_obj[i].name){
            file_obj2.push(file_obj[i]);
        }
    }
    var length = file_obj2.length;
    if(length>0){
        file_obj2.forEach(function(item,index){
            if(item.path){
            var tmpPath = item.path;
            var type = item.type;
            var extension_name = "";
            //移動到指定的目錄,一般放到public的images文件下面
            //在移動的時候確定路徑已經存在,否則會報錯
            var tmp_name = (Date.parse(new Date())/1000);
            tmp_name = tmp_name+''+(Math.round(Math.random()*9999));
            //判斷文件類型
            switch (type) {
                case 'image/pjpeg':extension_name = 'jpg';
                    break;
                case 'image/jpeg':extension_name = 'jpg';
                    break;
                case 'image/gif':extension_name = 'gif';
                    break;
                case 'image/png':extension_name = 'png';
                    break;
                case 'image/x-png':extension_name = 'png';
                    break;
                case 'image/bmp':extension_name = 'bmp';
                    break;
            }
            var tmp_name = tmp_name+'.'+extension_name;
            var targetPath = 'public/images/' + tmp_name;
            console.log(tmpPath);
            //將上傳的臨時文件移動到指定的目錄下
            fs.rename(tmpPath, targetPath , function(err) {
                if(err){
                    throw err;
                }
                if(pics){
                    pics += ','+tmp_name;
                }else{
                    pics += tmp_name;
                }
                //判斷是否完成
                //console.log(index);
                 //刪除臨時文件
                fs.unlink(tmpPath, function(){
                    if(err) {
                        throw err;
                    }else{
                        if((index+1)==length){
                    console.log(targetPath);
                    //上傳處理完成
                    //數據
                    var data = {
                        x:x,//經度
                        y:y,//維度
                        cat_id:cat_id,//分類id
                        cat_name:cat_name,//分類名稱
                        address:address,//地址
                        title:title,//標題
                        desc:desc,//簡介
                        content:content,//內容
                        pics:pics,//圖片字段,以','隔開多張圖片
                        price:price,//價格
                        tags:tags,//標簽 以','隔開多個
                        add_time:add_time,//支持度
                        support:support,//支持度 默認為0
                        uid:uid//用戶id 可匿名
                    };
                    food_preDao.insert(data, function (err, food) {
                        if(err){
                            res.json({err:100,content:'數據庫錯誤'});
                        }else{
                            res.json({err:0,content:'發布成功!',data:food});
                        }

                    });
                }
                    }
                });


            });
            }
         });
    }else{
        //沒有圖片
        //數據
        var data = {
            x:x,//經度
            y:y,//維度
            cat_id:cat_id,//分類id
            cat_name:cat_name,//分類名稱
            address:address,//地址
            title:title,//標題
            desc:desc,//簡介
            content:content,//內容
            pics:pics,//圖片字段,以','隔開多張圖片
            price:price,//價格
            tags:tags,//標簽 以','隔開多個
            add_time:add_time,//支持度
            support:support,//支持度 默認為0
            uid:uid//用戶id 可匿名
        };
        food_preDao.insert(data, function (err, food) {
            if(err){
                res.json({err:100,content:'數據庫錯誤'});
            }else{
                res.json({err:0,content:'發布成功!',data:food});
            }

        });
    }


  }
};


3.視圖文件(我這里是/views/users/food_add.ejs)
復制代碼 代碼如下:

<style>
    .upload_item{ width: 50px; height: 45px; overflow: hidden;border: 2px dashed #bfbfbf; float: left;margin-right: 10px;}
    .upload_item_add{  width: 50px; height: 45px; display: block; line-height: 42px; text-align: center; font-size: 30px; cursor: pointer;}
    .upload_input{ }
</style>
<script>
    var ADD = {
        upload_click:function(obj){
            $(obj).parent().children().eq(1).click();
        },
        upload_change:function(obj){
            var path;
            path=$(obj).val();      //C:/Documents and Settings/hud/桌面/AddFile.jpg
            var aa;
            aa=path.split('.');
            //alert(aa[aa.length-1]);  //jpg 結果

            var name;
            name=path.split('//');
            var bb=name[name.length-1];            
            //alert(bb.substr(0,bb.indexOf('.')));  //AddFile 結果

            $(obj).parent().children().eq(0).css('fontSize','12px');
            $(obj).parent().css('borderStyle','solid');
            $(obj).parent().children().eq(0).html(bb.substr(0,bb.indexOf('.')));
            if($(obj).parent().attr('index')==1){//新增
                var html = '<div class="upload_item" index="1"><span class="upload_item_add" onclick="ADD.upload_click(this)">+</span><input type="file" name="pics" id="pics" class="upload_input" onchange="ADD.upload_change(this)" /></div>';
                $('#upload_box').append(html);
                $(obj).parent().attr('index','0');
            }
        }
     };
</script>
<form method="post" action="/add" enctype="multipart/form-data">
    <table>
        <tr>
            <td>經度:</td><td><input type="text" name="x" id="x" /></td>
        </tr>
        <tr>
            <td>維度:</td><td><input type="text" name="y" id="y" /></td>
        </tr>
        <tr>
            <td>分類:</td><td><select name="cat_id"><option value="1">分類1</option></select></td>
        </tr>
        <tr>
            <td>地址:</td><td><input type="text" name="address" id="address" /></td>
        </tr>
        <tr>
            <td>標題:</td><td><input type="text" name="title" id="title" /></td>
        </tr>
        <tr>
            <td>簡介:</td><td><input type="text" name="desc" id="desc" /></td>
        </tr>
        <tr>
            <td>內容:</td><td><input type="text" name="content" id="content" /></td>
        </tr>
        <tr>
            <td>圖片:</td><td id="upload_box"><div class="upload_item" index="0" style="display:none;"><span class="upload_item_add" onclick="ADD.upload_click(this)">+</span><input type="file" name="pics" id="pics" class="upload_input" onchange="ADD.upload_change(this)" /></div><div class="upload_item" index="1"><span class="upload_item_add" onclick="ADD.upload_click(this)">+</span><input type="file" name="pics" id="pics" class="upload_input" onchange="ADD.upload_change(this)" /></div></td>
        </tr>
        <tr>
            <td>價格:</td><td><input type="text" name="price" id="price" /></td>
        </tr>
        <tr>
            <td>標簽:</td><td><input type="text" name="tags" id="tags" /></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="提交" /></td>
        </tr>
    </table>
</form>


 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人av资源在线播放| 久久国产精彩视频| 亚洲电影第1页| 亚洲偷熟乱区亚洲香蕉av| 欧美日韩国产中文精品字幕自在自线| 久久精品电影一区二区| 狠狠爱在线视频一区| 亚洲第一中文字幕在线观看| 欧美日韩裸体免费视频| 国产脚交av在线一区二区| 日韩网站在线观看| 亚洲精品自在久久| 成人网欧美在线视频| 精品一区精品二区| 欧美视频二区36p| 亚洲男女自偷自拍图片另类| 综合网日日天干夜夜久久| 欧美人交a欧美精品| 欧美高清电影在线看| 国产午夜精品视频| 国产精品高清在线观看| 国语自产精品视频在免费| 午夜剧场成人观在线视频免费观看| 亚洲一区二区中文字幕| 亚洲自拍小视频免费观看| 日韩高清免费在线| 欧美高清视频在线播放| 国产成人精品在线| 欧美猛少妇色xxxxx| 国产日韩欧美综合| 欧美精品成人91久久久久久久| 一本色道久久综合狠狠躁篇的优点| 国产亚洲成精品久久| 亚洲欧美中文日韩在线| 日本精品va在线观看| 国产午夜精品美女视频明星a级| 成人黄色免费片| 日韩在线观看精品| 亚洲免费一级电影| 最近免费中文字幕视频2019| 亚洲国产精品久久精品怡红院| 成人日韩在线电影| 综合136福利视频在线| 色777狠狠综合秋免鲁丝| 亚洲天堂免费在线| 日本亚洲精品在线观看| 欧美激情精品久久久久久免费印度| 久久视频在线观看免费| 日韩在线播放视频| 视频在线观看99| 欧美一区第一页| 欧美极度另类性三渗透| 亚洲欧洲美洲在线综合| 97成人超碰免| 亚洲欧美在线免费| 亚洲欧美日韩国产成人| 秋霞av国产精品一区| 欧美日本亚洲视频| 在线观看91久久久久久| 九九视频直播综合网| 日韩风俗一区 二区| 亚洲视频在线播放| 日韩成人小视频| 国产精品一区二区久久久久| 国产aⅴ夜夜欢一区二区三区| 国产97在线亚洲| 亚洲黄色www| 91中文字幕在线观看| 国产性猛交xxxx免费看久久| 精品国产美女在线| 国内精品美女av在线播放| 日韩欧美一区二区三区久久| 亚洲图片欧洲图片av| 国产精品人成电影| 欧美日韩高清区| 久久国产精品首页| 8090理伦午夜在线电影| 欧美一区在线直播| 久久av中文字幕| 日韩在线中文字幕| 欧美日韩一区二区三区在线免费观看| 国产第一区电影| 欧美激情中文字幕在线| 深夜福利日韩在线看| 亚洲免费电影一区| 欧美专区国产专区| 国产中文字幕亚洲| 国产精品久久久久久久久久东京| 欧美极品少妇xxxxx| 日韩av免费一区| xvideos国产精品| 欧美午夜性色大片在线观看| 夜夜嗨av色综合久久久综合网| 欧美亚洲伦理www| 97在线看福利| 国产一区av在线| 亚洲电影成人av99爱色| 亚洲成年人在线播放| 亚洲一区二区福利| 精品日韩视频在线观看| 91久久国产婷婷一区二区| 国产精自产拍久久久久久蜜| 91精品久久久久久久久| 国产精品视频不卡| 日韩精品极品视频免费观看| 国外成人免费在线播放| 日韩视频免费观看| 日韩精品中文字幕在线| 国产精品人成电影在线观看| 国产mv免费观看入口亚洲| 亚洲欧美一区二区精品久久久| 中文字幕亚洲一区二区三区五十路| 欧美成人午夜免费视在线看片| 欧美国产精品人人做人人爱| 日韩电影中文字幕| 国产精品国产自产拍高清av水多| 国产精品久久久久久五月尺| 97视频人免费观看| 69久久夜色精品国产69| 国产一区二区三区在线免费观看| 日韩在线视频观看正片免费网站| 亚洲精品欧美日韩| 日韩av免费网站| 狠狠久久五月精品中文字幕| 久99九色视频在线观看| 欧美精品一区二区三区国产精品| 992tv在线成人免费观看| 国产精品私拍pans大尺度在线| 国产日韩欧美日韩| 国产精品亚洲视频在线观看| 国产欧美精品日韩| 欧美性猛交xxxx黑人| 92看片淫黄大片欧美看国产片| 国产成人激情视频| 国产啪精品视频| 亚洲精品国偷自产在线99热| 日韩欧美中文在线| 国产精品日韩欧美综合| 国产亚洲精品久久久久久| 国产精品国产三级国产专播精品人| 亚洲人高潮女人毛茸茸| 精品国产91久久久久久| 欧美在线日韩在线| 国产91精品黑色丝袜高跟鞋| 日韩在线视频线视频免费网站| 亚洲精品久久在线| 久久久久国产精品免费网站| 亚洲激情视频网| 久久久久久久久久久国产| 日韩精品中文字幕久久臀| 精品成人69xx.xyz| 久久91精品国产91久久跳| 欧美极品少妇xxxxⅹ喷水| 精品成人在线视频| 国产香蕉97碰碰久久人人| 欧美日韩国产一中文字不卡| 色综合久久精品亚洲国产| 97国产一区二区精品久久呦| 欧美激情精品久久久久久黑人| 亚洲免费av电影| 亚洲人成绝费网站色www| 国产精品自产拍高潮在线观看| 国产精品视频999| 久久久久久亚洲精品中文字幕|