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

node.js文件上傳處理示例

 更新時間:2016年10月27日 14:06:50   作者:cclehui  
這篇文章主要介紹了node.js文件上傳處理的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下。

直入主題,在Node.js web 開發(fā)基本框架的前提下,我們來做一個文件上傳功能

上傳的handler比較簡單,網上都能找到

var url=require('url');
var exec=require('child_process').exec;
var querystring=require('querystring');

/********************************文件上傳 第3方模塊測試*************************/
function fileUploadForm(request,response){
 response.writeHead(200,{'Content-Type':'text/html'});
 var body = '<html>'+
  '<head>'+
  '<meta http-equiv="Content-Type" '+
  'content="text/html; charset=UTF-8" />'+
  '</head>'+
  '<body>'+
  '<form action="/fileuploadaction" method="post" enctype="multipart/form-data">'+
  '<input name="name" type="text" />'+
  '<input name="upload" type="file" />'+
  '<input type="submit" value="Upload" />'+
  '</form>'+
  '</body>'+
  '</html>';
 response.write(body);
 response.end();
}

<span style="color: rgb(255, 0, 0);">function fileUploadAction(request,response){
 var fs=require('fs');
 var formidable=require('formidable');
 var baseUploadPath="./media/upload/";
 var form=new formidable.IncomingForm();
 form.uploadDir='./var/tmp';
 form.parse(request,function(error,fields,files){
  if(!error){
   console.log(fields);
   var desUploadName=baseUploadPath+files.upload.name;
   fs.renameSync(files.upload.path, desUploadName);
   response.writeHead(200,{'Content-Type':'text/html'});//值得注意的是這里的response.writeHead()函數內容要寫在form.parse()的callback中要不不會顯示
   response.write('received image:</br>');
   response.write('<img src="/showuploadimage?name='+files.upload.name+'" />');
   response.end();
  }
 });
}</span>

function showUploadImage(request,response){
 var fs=require('fs');
 var imageName=querystring.parse(url.parse(request.url).query);
 var baseUploadPath="./media/upload/";
 fs.readFile(baseUploadPath+imageName.name, "binary", function(error, file) {
  if(error) {
   response.writeHead(500, {"Content-Type": "text/plain"});
   response.write(error + "\n");
   response.end();
  } else {
   response.writeHead(200, {"Content-Type": "image/png"});
   response.write(file, "binary");
   response.end();
  }
 });
}
exports.fileuploadform=fileUploadForm;
exports.fileuploadaction=fileUploadAction;
exports.showuploadimage=showUploadImage;

同時在index.js中添加

handle['/fileuploadform']=handlers.fileuploadform; 
handle['/fileuploadaction']=handlers.fileuploadaction; 
handle['/showuploadimage']=handlers.showuploadimage; 

有一點需要注意的是,在有需要處理文件上傳的時候,不能在server中添加

request.setEncoding('utf8');//設置這個很可能導致上傳失敗,這是formidable模塊的一個bug吧 


request.addListener("data",function(tempPostData){ 
   postData+=tempPostData; 
  }); 
  request.addListener("end",function(){ 
   route(request,response,postData,handle); 
  }); 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Node.js API詳解之 console模塊用法詳解

    Node.js API詳解之 console模塊用法詳解

    這篇文章主要介紹了Node.js API詳解之 console模塊用法,總結分析了Node.js API中console模塊基本函數、使用方法與操作注意事項,需要的朋友可以參考下
    2020-05-05
  • nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比較

    nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEq

    這篇文章主要介紹了node項目中遇到使用斷言測試程序,看了下nodejs的api之后,對nodejs中assert斷言的幾個方法做個簡單的記錄,需要的朋友可以參考下
    2017-09-09
  • node.js中的fs.write方法使用說明

    node.js中的fs.write方法使用說明

    這篇文章主要介紹了node.js中的fs.write方法使用說明,本文介紹了fs.write的方法說明、語法、接收參數、使用實例和實現源碼,需要的朋友可以參考下
    2014-12-12
  • 在node中如何調用python腳本

    在node中如何調用python腳本

    這篇文章主要介紹了在node中如何調用python腳本,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Node.js基礎入門之模塊與npm包管理器使用詳解

    Node.js基礎入門之模塊與npm包管理器使用詳解

    Node.js是一個基于Chrome?V8引擎的JavaScript運行時。類似于Java中的JRE,.Net中的CLR。本文將詳細為大家介紹Node.js中的模塊與npm包管理器的使用,需要的可以參考一下
    2022-03-03
  • Node.js、Socket.IO和GPT-4構建AI聊天機器人的項目實踐

    Node.js、Socket.IO和GPT-4構建AI聊天機器人的項目實踐

    本文主要介紹了Node.js、Socket.IO和GPT-4構建AI聊天機器人的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • 詳解express + mock讓前后臺并行開發(fā)

    詳解express + mock讓前后臺并行開發(fā)

    這篇文章主要介紹了詳解express + mock讓前后臺并行開發(fā),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • nodejs爬蟲抓取數據亂碼問題總結

    nodejs爬蟲抓取數據亂碼問題總結

    這篇文章主要給大家總結了下nodejs爬蟲抓取數據亂碼問題的相關資料,需要的朋友可以參考下
    2015-07-07
  • 淺談Node.js 中間件模式

    淺談Node.js 中間件模式

    中間件在 Node.js 中被廣泛使用,它泛指一種特定的設計模式、一系列的處理單元、過濾器和處理程序,以函數的形式存在,這篇文章主要介紹了淺談Node.js 中間件模式,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Node.js中的模塊機制學習筆記

    Node.js中的模塊機制學習筆記

    這篇文章主要介紹了Node.js中的模塊機制學習筆記,本文講解了CommonJS模塊規(guī)范、Node模塊實現過程、模塊調用棧、包與NPM等內容,需要的朋友可以參考下
    2014-11-11

最新評論