前端
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
</head>
<body>
<form enctype="multipart/form-data">
<input type="file" id="inp" name="headimg">
<img id="logo" src="../../static/img/logo.png">
</form>
</body>
<script>
$("#inp").change(function () {
console.log('begin');
var file=$("#inp")[0].files[0];
var formdata=new FormData();
formdata.append('file',file);
var reader=new FileReader();
reader.readAsDataURL(file);
reader.onload=function (e) {
base64Code=this.result;
console.log("base64Code:");
// console.log(base64Code);
$('#logo').attr('src',base64Code);
$.ajax({
url:'/test',
type:'post',
dataType:'json',
processData:false,
contentType:false,
data:formdata,
async:false,
success:function (result) {
alert("success");
},
error:function (XMLHttpRequest,textStatus,errorThrown) {
console.log('error');
alert(XMLHttpRequest.responseText+" "+textStatus);
}
})
}
// $('#logo').attr('src',urlh);
})
</script>
</html>
后端
妈蛋!
中间件写太多遭报应了
// var User=require('../server').User
var restify=require('restify')
var server=restify.createServer();
var fs=require('fs');
var formidable=require('formidable');
var path=require('path');
var util=require('util');
var md5 = require('md5');
// var sd=require('silly-datetime');
// server.use(restify.plugins.bodyParser());
// server.use(restify.plugins.queryParser());
// server.use(restify.plugins.acceptParser(server.acceptable));
// server.use(restify.plugins.urlEncodedBodyParser());
server.get('/*',restify.plugins.serveStatic({
directory:__dirname,
}))
server.get('/',restify.plugins.serveStatic({
directory:'./views',
file:'demoh5.html'
}));
server.post('/test',function (req,res,next) {
console.log('test');
var form=new formidable.IncomingForm();
var targetFile=path.join(__dirname,'./img');
form.uploadDir=targetFile;
// form.keepExtensions=true;
// form.multiples=true;
// form.encoding='utf-8';
// console.log(req.files.file.path);
form.parse(req,function (err,fields,files) {
if(err)throw err;
// console.error(typeof files);
// console.log('test2');
// console.dir(fields);
// console.error(files);
fs.rename(files.file.path,"./img/"+md5(new Date())+".jpg",function (err) {
console.log(md5(new Date())+".jpg");
// console.log(f.path);
res.writeHead(200,{
"content-Type":"text/html;charset=UTF8"
});
res.end("表单提交成功");
});
});
return;
})
server.listen('1889',function () {
console.log('server listening at %s',server.url);
})