免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

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

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(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)力。可充分滿足這一群體相比中小企業(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 ,這樣就可以上傳成功,但是問(wèn)題是multer不會(huì)管你的后綴,上傳到upload文件夾的文件有一個(gè)亂序名稱但是沒(méi)有后綴,所以我增加了這個(gè)功能。

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

download 文件下載

網(wǎng)上基本上是express對(duì)res.download的封裝以及fs方法為主,注意要把文件夾設(shè)定為靜態(tài)文件。出現(xiàn)的問(wèn)題是點(diǎn)擊之后就會(huì)在新頁(yè)面顯示要下載的文件,無(wú)論是圖片還是音樂(lè)。。這讓我很困擾,但是找了很久也沒(méi)有很好的解決。用IE訪問(wèn)結(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ù))(沒(méi)有修改后綴)
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ì)直接在頁(yè)面上展示。.最后也沒(méi)有解決)
//設(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)建站m.newbst.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+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://m.newbst.com/article28/cepicp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站網(wǎng)站排名建站公司做網(wǎng)站定制開(kāi)發(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化