node.js文件上传处理示例文件上传处理示例
主要介绍了node.js文件上传处理的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下。
直入主题,在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 + "");
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;
评论0
最新资源