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

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

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

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

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è)置圖片存儲路徑
form.uploadDir = "Uploads/gaoxiao/";
form.keepExtensions = true; //保留后綴
form.maxFieldsSize = 2*1024*1024; //內(nèi)存大小
form.maxFilesSize= 5*1024*1024;//文件字節(jié)大小限制,超出會報(bào)錯(cuò)err
//表單解析
form.parse(req, function(err,fields,files) {
//報(bào)錯(cuò)處理
if(err){
console.log(err);
var u={"error" :1,"message":'請上傳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":'請上傳正確格式'};
res.end(JSON.stringify(u));
return false;
}
var url='Uploads/gaoxiao/'+Date.now()+suffix;
var fs=require('fs');
//給圖片修改名稱
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é)為單位分配。如果超過該值,一個(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ù)。如果超過該值,一個(gè)error事件被發(fā)射。默認(rèn)值是無窮大。

autoFields:啟用field事件和禁用part事件的字段。這是自動設(shè)置為true如果添加了一個(gè)field偵聽器。

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

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

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

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

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

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

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

- path - 在磁盤上載文件的絕對路徑

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

    這篇文章主要介紹了Nodejs實(shí)現(xiàn)WebSocket代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(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)站登錄,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • node版本快速切換及管理方法

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

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

    node.js開機(jī)自啟動腳本文件

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

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

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

    node.js中的http.request.end方法使用說明

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

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

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

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

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

最新評論