Error: EXDEV, Cross-device link


var exec = require("child_process").exec;

var querystring = require("querystring");

var fs = require("fs");

var util = require('util');

var formidable = require("formidable");

function start(response){
	console.log("request handler start was called ");
	
//	function sleep(milliSeconds){
//		var startTime = new Date().getTime();
//		while(new Date().getTime()<startTime+milliSeconds);
//		
//	}
//	sleep(10000);
	  var body = '<html>'+
	    '<head>'+
	    '<meta http-equiv="Content-Type" '+
	    'content="text/html; charset=UTF-8" />'+
	    '</head>'+
	    '<body>'+
	    '<form action="/upload" enctype="multipart/form-data" '+
	    'method="post">'+
	    '<input type="file" name="upload">'+
	    '<input type="submit" value="Upload file" />'+
	    '</form>'+
	    '</body>'+
	    '</html>';
//	 var body = '<html>'+
//	 '<head>'+
//	 '<meta http-equiv="Content-Type" content="text/html; '+
//	 'charset=utf-8" />'+
//	 '</head>'+
//	 '<body>'+
//	 '<form action="/upload" method="post">'+
//	 '<textarea name="text" rows="20" cols="60"></textarea>'+
//	 '<input type="submit" value="Submit text" />'+
//	 '</form>'+
//	 '</body>'+
//	 '</html>';
//	var content = "empty";
//	exec("echo %JAVA_HOME%",{timeout:10000,maxBuffer:20000*1024},function (error,stdout,stderr){
//		response.writeHead(200,{"Content-Type":"text/plain"});
//		response.write(stdout);
//		response.end();
//	});
	 
	response.writeHead(200,{"Content-Type":"text/html"});
	response.write(body);
	response.end();
	
}

function upload(response,request){
	console.log(" Request handler 'upload' was colled ");
	
	var form = new formidable.IncomingForm();
	console.log(" about to parse ");
	
	form.parse(request,function (error,fields,files){
		console.log("parsing done");


		var is = fs.createReadStream(files.upload.path)
		var os = fs.createWriteStream('/tmp/test.png');
	
		util.pump(is, os, function() {
		    fs.unlinkSync(files.upload.path);
		});
		
//		fs.renameSync(files.upload.path, "/tmp/test.png");
	    response.writeHead(200, {"Content-Type": "text/html"});
	    response.write("received image:<br/>");
	    response.write("<img src='/show' />");
	    response.end();
	});
	
//	response.writeHead(200, {"Content-Type": "text/plain;charset=utf-8"});
//	response.write("You've sent the text: "+querystring.parse(postData).text);
//	response.end();
}


function show(response,postData){
	console.log("Request handler 'show ' was called. ");
	fs.readFile("/tmp/test.png","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.start =start;
exports.upload = upload;
exports.show =show;

你可能感兴趣的:(device)