国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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 實(shí)現(xiàn)文件上傳功能

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

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

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

說明

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

效果

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

要實(shí)現(xiàn)整體效果的話,要配合css和html來做,前端初學(xué)者,第一次發(fā)博客,實(shí)在捉急,近期,將會(huì)將代碼放到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){
 //文件上傳成功后會(huì)放入public下的upload文件夾
 cb(null, './public/upload')
 },
 filename: function (req, file, cb){
 //設(shè)置文件的名字為其原本的名字,也可以添加其他字符,來區(qū)別相同文件,例如file.originalname+new Date().getTime();利用時(shí)間來區(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)建一個(gè)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"){
 //只有滿足以上格式時(shí),才會(huì)觸發(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ò)路徑,來實(shí)現(xiàn)上傳文檔的下載 
 if(formart=="docx"||formart=="txt"||formart=="doc"){
 //結(jié)合css樣式,實(shí)現(xiàn)顯示圖標(biāo)
 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ū)域 
 }
 } 
 //不滿足上傳格式時(shí) 
 }else{
 alert("文件格式不支持上傳")
 }
 }
</script>
</body>
</html>

總結(jié)

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

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

文檔

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

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

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美日韩精品一区二区三区 | 亚洲午夜一区二区三区 | 国产精品美女一区二区 | 久久精品2| 日韩欧美一区二区三区不卡在线 | 五十路中文字幕 | 伊人久久精品久久亚洲一区 | 国内一区二区 | 欧美综合自拍亚洲综合 | 一级毛片免费的 | 一边摸一边叫床一边爽 | 欧美三页 | a男人的天堂久久a毛片 | a集毛片| 欧美在线一 | 精品一区二区三区免费毛片爱 | 日本久久网 | 欧美一区二区高清 | 欧美色欧美亚洲另类 | 久久一精品 | 欧美精品色精品一区二区三区 | 一级毛片视频免费 | 成人国产一区二区三区精品 | 一区在线观看 | 中文 字幕 高清 在线 | 日本中文字幕有码 | 欧美日韩国产综合在线 | 久久一区二区三区精品 | 精品国产欧美一区二区五十路 | 亚洲精品免费在线观看 | 久久精品视频一区二区三区 | 亚洲国产精品热久久2022 | 三级中文字幕电影大全 | 国产三级一区二区 | 久久亚洲伊人成综合人影院 | 国产网站在线免费观看 | 国产在线看不卡一区二区 | 亚洲国产精品视频 | 日韩视频免费在线观看 | 亚洲三级一区 | 国产精品久久久久久久久 |