最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

node.js文件上传处理示例

来源:动视网 责编:小采 时间:2020-11-27 20:27:50
文档

node.js文件上传处理示例

node.js文件上传处理示例:直入主题,在Node.js web 开发基本框架的前提下,我们来做一个文件上传功能上传的handler比较简单,网上都能找到var url=require('url'); var exec=require('child_process').exec; var querystring=
推荐度:
导读node.js文件上传处理示例:直入主题,在Node.js web 开发基本框架的前提下,我们来做一个文件上传功能上传的handler比较简单,网上都能找到var url=require('url'); var exec=require('child_process').exec; var querystring=


直入主题,在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 = '<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文件上传处理示例

node.js文件上传处理示例:直入主题,在Node.js web 开发基本框架的前提下,我们来做一个文件上传功能上传的handler比较简单,网上都能找到var url=require('url'); var exec=require('child_process').exec; var querystring=
推荐度:
标签: 文件 上传 处理
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top