欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

全面解析node 表單的圖片上傳

 更新時(shí)間:2016年11月21日 11:52:52   作者:樹(shù)上葉子  
本文給大家介紹分享node全面解析表單的圖片上傳,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧

node 全面解析表單的圖片上傳 ,multiparty解析與內(nèi)容類(lèi)型的HTTP請(qǐng)求multipart/form-data,也被稱(chēng)為文件上傳。

multiparty安裝

npm install multiparty

html代碼

<form action="/api/uppic" method="post" >
<input type="file" name="pic" >
<input type="submit">
</form>

node 代碼

app.route('/api/uppic').post(function(req,res){
var multiparty = require('multiparty'); 
var form = new multiparty.Form();//新建表單
//設(shè)置編輯
form.encoding = 'utf-8';
//設(shè)置圖片存儲(chǔ)路徑
form.uploadDir = "Uploads/gaoxiao/";
form.keepExtensions = true; //保留后綴
form.maxFieldsSize = 2*1024*1024; //內(nèi)存大小
form.maxFilesSize= 5*1024*1024;//文件字節(jié)大小限制,超出會(huì)報(bào)錯(cuò)err
//表單解析
form.parse(req, function(err,fields,files) {
//報(bào)錯(cuò)處理
if(err){
console.log(err);
var u={"error" :1,"message":'請(qǐng)上傳5M以圖片'};
res.end(JSON.stringify(u));
return false;
}
//獲取路徑
var oldpath=files.imgFile[0]['path'];
//文件后綴處理格式
if(oldpath.indexOf('.jpg')>=0){
var suffix='.jpg'; 
}else if(oldpath.indexOf('.png')>=0){ 
var suffix='.png'; 
}else if(oldpath.indexOf('.gif')>=0){ 
var suffix='.gif'; 
}else{
var u={"error" :1,"message":'請(qǐng)上傳正確格式'};
res.end(JSON.stringify(u));
return false;
}
var url='Uploads/gaoxiao/'+Date.now()+suffix;
var fs=require('fs');
//給圖片修改名稱(chēng)
fs.renameSync(oldpath,url);
var u={ "error" : 0, "url" : '/'+url}
res.end(JSON.stringify(u)); 
});
});

multiparty

multiparty.Form創(chuàng)建一個(gè)新的形式**

encoding:用于輸入表單字段集編碼。默認(rèn)為utf8

maxFieldsSize:限制內(nèi)存的所有字段(而不是文件)的量可以以字節(jié)為單位分配。如果超過(guò)該值,一個(gè)error事件被發(fā)射。默認(rèn)大小為2MB。

maxFields:限制,將發(fā)射一個(gè)前解析字段的數(shù)目error的事件。一個(gè)文件算作在這種情況下,一個(gè)字段。默認(rèn)為1000。

maxFilesSize:上傳文件大小限制,只有當(dāng)相關(guān)autoFiles的true。限制接受合并所有文件的總字節(jié)數(shù)。如果超過(guò)該值,一個(gè)error事件被發(fā)射。默認(rèn)值是無(wú)窮大。

autoFields:?jiǎn)⒂胒ield事件和禁用part事件的字段。這是自動(dòng)設(shè)置為true如果添加了一個(gè)field偵聽(tīng)器。

uploadDir:只有當(dāng)相關(guān)autoFiles的true。目錄放置文件上傳。您以后可以使用移動(dòng)它們fs.rename()。默認(rèn)為os.tmpDir()。

form.parse(req,function(err,fields,files){})

- fields: 是一個(gè)對(duì)象(上傳名稱(chēng)和值),其屬性名的字段名稱(chēng)和值是字段值的數(shù)組。

- files :是一個(gè)對(duì)象(上傳名稱(chēng)和服務(wù)器文件路徑),其屬性名的字段名稱(chēng)和值是文件對(duì)象的數(shù)組。

files內(nèi)文件對(duì)象file - 具有這些屬性的對(duì)象:

- fieldName-同name-此文件中的字段名

- originalFilename -文件名,對(duì)于該文件的用戶(hù)的報(bào)告

- path - 在磁盤(pán)上載文件的絕對(duì)路徑

- headers - 這是與該文件一起發(fā)送的HTTP頭

- size -以字節(jié)的文件大小

node表單解析(multiparty)的api地址:https://www.npmjs.com/package/multiparty

以上所述是小編給大家介紹的全面解析node 表單的圖片上傳,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Node.js實(shí)現(xiàn)文件上傳的示例

    Node.js實(shí)現(xiàn)文件上傳的示例

    本篇文章主要介紹了Node.js實(shí)現(xiàn)文件上傳的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • node.js程序作為服務(wù)并在windows下開(kāi)機(jī)自啟動(dòng)(用forever)

    node.js程序作為服務(wù)并在windows下開(kāi)機(jī)自啟動(dòng)(用forever)

    這篇文章主要介紹了node.js程序作為服務(wù)并在windows下開(kāi)機(jī)自啟動(dòng)的相關(guān)資料,因?yàn)閷?shí)現(xiàn)的功能比較簡(jiǎn)單,沒(méi)有選擇功能比較強(qiáng)大的pm2,文中選擇利用了forever,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-03-03
  • Nodejs實(shí)現(xiàn)WebSocket代碼實(shí)例

    Nodejs實(shí)現(xiàn)WebSocket代碼實(shí)例

    這篇文章主要介紹了Nodejs實(shí)現(xiàn)WebSocket代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • node puppeteer(headless chrome)實(shí)現(xiàn)網(wǎng)站登錄

    node puppeteer(headless chrome)實(shí)現(xiàn)網(wǎng)站登錄

    這篇文章主要介紹了node puppeteer(headless chrome)實(shí)現(xiàn)網(wǎng)站登錄,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • node版本快速切換及管理方法

    node版本快速切換及管理方法

    這篇文章主要為大家介紹了node版本快速切換及管理方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • node.js開(kāi)機(jī)自啟動(dòng)腳本文件

    node.js開(kāi)機(jī)自啟動(dòng)腳本文件

    這篇文章主要介紹了node.js開(kāi)機(jī)自啟動(dòng)腳本文件的方法和代碼,這里分享給大家,有需要的小伙伴參考下吧
    2014-12-12
  • 詳解node Async/Await 更好的異步編程解決方案

    詳解node Async/Await 更好的異步編程解決方案

    這篇文章主要介紹了詳解Async/Await 更好的異步編程解決方案,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • node.js中的http.request.end方法使用說(shuō)明

    node.js中的http.request.end方法使用說(shuō)明

    這篇文章主要介紹了node.js中的http.request.end方法使用說(shuō)明,本文介紹了http.request.end的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 一文詳解如何降低node包版本

    一文詳解如何降低node包版本

    這篇文章主要給大家介紹了關(guān)于如何降低node包版本的相關(guān)資料,在開(kāi)發(fā)的工程中我們可能需要經(jīng)常切換node版本來(lái)應(yīng)對(duì)不同的開(kāi)發(fā)環(huán)境,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • node.js如何充分利用多核cpu

    node.js如何充分利用多核cpu

    這篇文章主要介紹了node.js如何充分利用多核cpu,想了解node.js的同學(xué),可以參考下
    2021-04-04

最新評(píng)論