中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

怎么在nodejs中利用multer實(shí)現(xiàn)一個(gè)文件上傳下載功能-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)怎么在nodejs中利用multer實(shí)現(xiàn)一個(gè)文件上傳下載功能,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),清水河企業(yè)網(wǎng)站建設(shè),清水河品牌網(wǎng)站建設(shè),網(wǎng)站定制,清水河網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,清水河網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

 upload 文件上傳 

html form標(biāo)簽內(nèi)設(shè)置enctype=”multipart/form-data”是必須的,這樣才可以上傳文件,方式為post ,在服務(wù)端使用multer時(shí),基本與官網(wǎng)相同,引用中間件multer,app.post(‘\upload',upload.single(‘name'),function(){}); 指定單文件上傳,參數(shù)是html的input里面的name ,這樣就可以上傳成功,但是問題是multer不會(huì)管你的后綴,上傳到upload文件夾的文件有一個(gè)亂序名稱但是沒有后綴,所以我增加了這個(gè)功能。

req.file是文件信息,取得原名稱,經(jīng)過數(shù)組以及堆棧等處理得到后綴'.jpg' , 用fs.renameSync()方法重命名文件,加上本來的后綴。這樣真正的上傳成功。唯一的缺點(diǎn)是沒有實(shí)現(xiàn)改變文件名字,使用官網(wǎng)方式出現(xiàn)了錯(cuò)誤,所以沒有深究。。

download 文件下載

網(wǎng)上基本上是express對(duì)res.download的封裝以及fs方法為主,注意要把文件夾設(shè)定為靜態(tài)文件。出現(xiàn)的問題是點(diǎn)擊之后就會(huì)在新頁面顯示要下載的文件,無論是圖片還是音樂。。這讓我很困擾,但是找了很久也沒有很好的解決。用IE訪問結(jié)果是會(huì)出現(xiàn)下載還是查看的選項(xiàng)。。很迷??傊褪沁@樣了,一晚上的努力,我很滿足。。嘻嘻

服務(wù)端

//index.js

var fs = require('fs')
var express = require('express')
var multer = require('multer')
const path = require('path');

 var app = express();
 var upload = multer({dest:'upload/'});

//多文件上傳 (限定上傳文件個(gè)數(shù))(沒有修改后綴)
app.post('/upload-multi',upload.array('myfile',2),function(req,res,next){
  res.send("2 done");
})
//單文件上傳獲取信息
app.post('/upload-single',upload.single('myfile'),function(req,res,next){
  var file=req.file;
  // console.log("名稱:%s",file.originalname);
  // console.log("mime:%s",file.mimetype);
//以下代碼得到文件后綴
  name=file.originalname;
  nameArray=name.split('');
  var nameMime=[];
  l=nameArray.pop();
  nameMime.unshift(l);
  while(nameArray.length!=0&&l!='.'){
  l=nameArray.pop();
  nameMime.unshift(l);
  }
//Mime是文件的后綴
  Mime=nameMime.join('');
  console.log(Mime);
  res.send("done");
//重命名文件 加上文件后綴
  fs.renameSync('./upload/'+file.filename,'./upload/'+file.filename+Mime);

})

//文件下載嘗試(chrome會(huì)直接在頁面上展示。.最后也沒有解決)
//設(shè)置download文件夾為靜態(tài) 才能下載
 app.use('/download', express.static(path.join(__dirname, 'download')));
// app.get('/download',function(req,res){
//   var path='./download/aa.mp3';
//   res.download(path,'aa.mp3');
// });
app.get('/download', function(req, res){
 var file = __dirname + '/download/aa.mp3';
 res.download(file); 
});
app.get('/',function(req,res,next){
  res.sendFile(__dirname+"/index.html");
})

app.listen(3000);

客戶端

//index.html

<!DOCTYPE html>
<html>
<head>
  <title>上傳文件</title>
  <meta charset="utf-8">
</head>
<body>
<form enctype="multipart/form-data" action="/upload-single" method="post">
<input type="file" name="myfile"></input>
<input type="submit" value="提交"></input>
</form>

<form enctype="multipart/form-data" action="/upload-multi" method="post">
<input type="file" name="myfile"></input>
<input type="file" name="myfile"></input>
<input type="submit" value="提交"></input>
</form>
<a href="download/aa.mp3" rel="external nofollow" >下載文件</a>
</body>
</html>

上述就是小編為大家分享的怎么在nodejs中利用multer實(shí)現(xiàn)一個(gè)文件上傳下載功能了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.rwnh.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:怎么在nodejs中利用multer實(shí)現(xiàn)一個(gè)文件上傳下載功能-創(chuàng)新互聯(lián)
鏈接分享:http://www.rwnh.cn/article28/cepicp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站網(wǎng)站排名、建站公司、做網(wǎng)站、定制開發(fā)、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
岳普湖县| 民丰县| 宜阳县| 蒲江县| 东光县| 广宗县| 彩票| 阿图什市| 五莲县| 榆中县| 蕲春县| 定襄县| 丰城市| 晋宁县| 曲麻莱县| 保康县| 洱源县| 平度市| 东乌| 集贤县| 湘乡市| 策勒县| 健康| 周至县| 南通市| 苍梧县| 富顺县| 广西| 喀喇沁旗| 喀喇沁旗| 岳池县| 中方县| 台北县| 土默特左旗| 基隆市| 吴堡县| 习水县| 河北区| 昌吉市| 泾源县| 鹰潭市|