• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    Ajax 配合node js multer 實現(xiàn)文件上傳功能

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:51:37
    文檔

    Ajax 配合node js multer 實現(xiàn)文件上傳功能

    Ajax 配合node js multer 實現(xiàn)文件上傳功能:說明 作為一個node 初學(xué)者,最近在做一個聊天軟件,支持注冊、登錄、在線單人、多人聊天、表情發(fā)送、各種文件上傳下載、增刪好友、聊天記錄保存、通知聲開關(guān)、背景圖片切換、游戲等功能,所以用到了multer 模塊,經(jīng)過各種查文檔,做demo例子,終于成功實現(xiàn)單
    推薦度:
    導(dǎo)讀Ajax 配合node js multer 實現(xiàn)文件上傳功能:說明 作為一個node 初學(xué)者,最近在做一個聊天軟件,支持注冊、登錄、在線單人、多人聊天、表情發(fā)送、各種文件上傳下載、增刪好友、聊天記錄保存、通知聲開關(guān)、背景圖片切換、游戲等功能,所以用到了multer 模塊,經(jīng)過各種查文檔,做demo例子,終于成功實現(xiàn)單

    說明

    作為一個node 初學(xué)者,最近在做一個聊天軟件,支持注冊、登錄、在線單人、多人聊天、表情發(fā)送、各種文件上傳下載、增刪好友、聊天記錄保存、通知聲開關(guān)、背景圖片切換、游戲等功能,所以用到了multer 模塊,經(jīng)過各種查文檔,做demo例子,終于成功實現(xiàn)單個文件上傳功能,支持大部分文件格式上傳,同時顯示到網(wǎng)頁上

    效果

    是不是有種微信即視感,沒錯,就是根據(jù)網(wǎng)頁版微信來做的,

    要實現(xiàn)整體效果的話,要配合css和html來做,前端初學(xué)者,第一次發(fā)博客,實在捉急,近期,將會將代碼放到github上去,感興趣的朋友可以去看一下

    下面直接上代碼,輕虐

    配置

    安裝

    直接通過cmd命令窗口安裝multer

    npm install multer -save 

    服務(wù)器代碼

    //引入http
    const http=require("http");
    //引入express
    const express=require("express");
    //引入multer
    const multer=require("multer");
    //創(chuàng)建服務(wù)器,綁定監(jiān)聽端口
    var app=express();
    var server=http.createServer(app);
    server.listen(8081);
    //建立public文件夾,將HTML文件放入其中,允許訪問
    app.use(express.static("public"));
    //文件上傳所需代碼
    //設(shè)置文件上傳路徑和文件命名
    var storage = multer.diskStorage({
     destination: function (req, file, cb){
     //文件上傳成功后會放入public下的upload文件夾
     cb(null, './public/upload')
     },
     filename: function (req, file, cb){
     //設(shè)置文件的名字為其原本的名字,也可以添加其他字符,來區(qū)別相同文件,例如file.originalname+new Date().getTime();利用時間來區(qū)分
     cb(null, file.originalname)
     }
    });
    var upload = multer({
     storage: storage
    });
    //處理來自頁面的ajax請求。single文件上傳
    app.post('/upload', upload.single('file'), function (req, res, next) {
     //拼接文件上傳后的網(wǎng)絡(luò)路徑,
     var url = 'http://' + req.headers.host + '/upload/' + req.file.originalname;
     //將其發(fā)回客戶端
     res.json({
     code : 1,
     data : url
     });
     res.end();
    });

    客戶端代碼

    <!DOCTYPE html>
    <html>
    <head lang="en">
     <meta charset="UTF-8">
     <title></title>
     <!--依托于jquery-->
     <script src="js/jquery-1.11.3.js"></script>
    </head>
    <body>
     <div class="container">
     <label>file</label>
     <input type="file" name="file" id="file">
     </div>
    <script>
     var file=$("#file")[0];
     //這里使用的是onchange事件,所以當(dāng)你選擇完文件之后,就觸發(fā)事件上傳
     file.onchange=function(){
     //創(chuàng)建一個FormDate
     var formData=new FormData();
     //將文件信息追加到其中
     formData.append('file',file.files[0]);
     //利用split切割,拿到上傳文件的格式
     var src=file.files[0].name,
     formart=src.split(".")[1]; 
     //使用if判斷上傳文件格式是否符合 
     if(formart=="jpg"||formart=="png"||
     formart=="docx"||formart=="txt"||
     formart=="ppt"||formart=="xlsx"||
     formart=="zip"||formart=="rar"||
     formart=="doc"){
     //只有滿足以上格式時,才會觸發(fā)ajax請求
     $.ajax({
     url: '/upload',
     type: 'POST',
     data: formData,
     cache: false,
     contentType: false,
     processData: false,
     success: function(data){
     //上傳成功之后,返回對象data 
     if(data.code>0){
     var src=data.data;
     //利用返回值src 網(wǎng)絡(luò)路徑,來實現(xiàn)上傳文檔的下載 
     if(formart=="docx"||formart=="txt"||formart=="doc"){
     //結(jié)合css樣式,實現(xiàn)顯示圖標
     var className="docx";
     //拼接html,生成到頁面上去 
     var msg=`<a href="${src}" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><i class="${className}"></i></a>`;
     }else if(formart=="ppt"){
     //PPT 格式
     className="ppt";
     msg=`<a href="${src}" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><i class="${className}"></i></a>`;
     }else if(formart=="xlsx"){
     //xlsx 格式
     className="xlsx";
     msg=`<a href="${src}" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><i class="${className}"></i></a>`;
     }else if(formart=="zip"||formart=="rar"){
     //zip || rar 格式
     className="zip";
     msg=`<a href="${src}" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><i class="${className}"></i></a>`;
     }else{
     //所有的圖片格式 
     msg=`<a href="javascript:;" rel="external nofollow" class="picCheck"><img src="${src}"></a>`;
     }
     // 這里將msg 追加到你要顯示的區(qū)域 
     }
     } 
     //不滿足上傳格式時 
     }else{
     alert("文件格式不支持上傳")
     }
     }
    </script>
    </body>
    </html>

    總結(jié)

    以上所述是小編給大家介紹的Ajax 配合node js multer 實現(xiàn)文件上傳功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Ajax 配合node js multer 實現(xiàn)文件上傳功能

    Ajax 配合node js multer 實現(xiàn)文件上傳功能:說明 作為一個node 初學(xué)者,最近在做一個聊天軟件,支持注冊、登錄、在線單人、多人聊天、表情發(fā)送、各種文件上傳下載、增刪好友、聊天記錄保存、通知聲開關(guān)、背景圖片切換、游戲等功能,所以用到了multer 模塊,經(jīng)過各種查文檔,做demo例子,終于成功實現(xiàn)單
    推薦度:
    標簽: 文件 上傳 js
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 麻豆国内精品久久久久久| 麻豆国产高清精品国在线| 老司机精品影院91| 成人午夜精品视频在线观看| 色婷婷噜噜久久国产精品12p| 精品国产污污免费网站| 日韩精品无码一本二本三本| 精品国产不卡一区二区三区| 青青草国产精品欧美成人| 少妇人妻偷人精品视频| 免费看一级毛片在线观看精品视频| 久久亚洲精品中文字幕三区| 久久99精品久久久久久hb无码| 久久这里有精品视频| www.日韩精品| 久久国产精品久久精品国产| 国产精品熟女高潮视频| 亚洲精品乱码久久久久久按摩| 久久精品国产黑森林| 国产精品99精品视频网站| 久久线看观看精品香蕉国产| 2021久久精品国产99国产精品| 久久99精品久久久久久久不卡 | wwwvr高清亚洲精品二区| 99精品在线播放| 99精品国产高清一区二区麻豆| 亚洲精品成人片在线观看精品字幕| 欧美亚洲另类精品第一页| 精品国产亚洲一区二区在线观看| 真实国产乱子伦精品免费| 久久国产精品一区二区| 欧美国产日本精品一区二区三区| 99精品国产一区二区三区| www国产精品| 精品国内片67194| 青青草精品视频| 91亚洲国产成人久久精品| 成人精品一区二区久久久| 99riav国产精品| 国产微拍精品一区二区| 精品国产午夜肉伦伦影院 |