博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node.js文件上传处理
阅读量:2431 次
发布时间:2019-05-10

本文共 2439 字,大约阅读时间需要 8 分钟。

在我之前讲到的node.js web 开发基本框架的前提下(),我们来做一个文件上传功能

上传的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 = ''+        ''+        '
'+ ''+ ''+ '
'+ '
'+ '
'+ '
'+ '
'+ ''+ ''; response.write(body); response.end();}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:
'); response.write(''); response.end(); } });}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);        });

转载地址:http://jysmb.baihongyu.com/

你可能感兴趣的文章
代码小思考
查看>>
Unity中的销毁方法
查看>>
ceph删除pool提示(you must first set the mon_allow_pool_delete config option to true)解决办法...
查看>>
2016-7-15(1)使用gulp构建一个项目
查看>>
CSS 设计指南(第3版) 初读笔记
查看>>
markdown学习/mou
查看>>
CentOS 搭建 LAMP服务器
查看>>
看完此文再不懂区块链算我输,用Python从零开始创建区块链
查看>>
C/S框架-WebService架构用户凭证(令牌)解决方案
查看>>
UVA 11149.Power of Matrix-矩阵快速幂倍增
查看>>
ajax post 请求415\ 400 错误
查看>>
POJ 2696 计算表达式的值
查看>>
都江堰很美-佩服古人_Crmhf的一天
查看>>
Linux系统资源查询命令(cpu、io、mem)
查看>>
(转)PowerHA完全手册(一,二,三)
查看>>
hdu 4391 Paint The Wall 线段树 +优化 2012 Multi-University Training Contest 10 )
查看>>
socket与socketServer通信
查看>>
Android_Layout (一)
查看>>
《过早退出是一切失败的根源》读后感
查看>>
luogu P1774 最接近神的人_NOI导刊2010提高(02)
查看>>