1,新建一个node.js项目,并且安装依赖包:formidable
2,app.js文件配置如下:
var http = require('http');
var fs = require('fs');
var formidable = require('formidable');
var firstPage = function(res){
res.writeHead(200, {'Content-Type': 'text/html'});
var html = fs.readFileSync(__dirname + '/public/form.html');
res.end(html);
}
var resultPage = function(res,data,files){
res.setHeader('Content-Type', 'text/html');
res.write('
thanks ' + data.name + '
');res.write('
- ');
console.log(data);
console.log(files);
if (Array.isArray(files.images)) {
files.images.forEach(function(image){
var kb = image.size / 1024 | 0;
res.write('
uploaded ' + image.name + ' ' + kb + 'kb');});
} else {
var image = files.images;
var kb = image.size / 1024 | 0;
res.write('
uploaded ' + image.name + ' ' + kb + 'kb');}
res.end('
');}
var server = http.createServer(function(req, res) {
if (req.method == 'GET'){
return firstPage(res);
}
var form = new formidable.IncomingForm;
var data = {};
var files = {};
form.uploadDir = __dirname +'/file';
form.keepExtensions = true;
function ondata(name, val, data){
if (Array.isArray(data[name])) {//数组
data[name].push(val);
} else if (data[name]) {//同key
data[name] = [data[name], val];
} else {//第一次
data[name] = val;
}
}
form.on('field', function(name, val){
ondata(name, val, data);
});
form.on('file', function(name, val){
ondata(name, val, files);
});
form.on('end', function() {
resultPage(res,data,files);
});
form.parse(req);
});
server.listen(8080);
console.log('listening on http://localhost:8080');
2,在public 目录下新建一个form.html文件,文件内容如下:
点击上传就可以在网页上实现上传
3,android布局文件内容如下:
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:id="@+id/textViewInfo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"/>
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewInfo"
android:layout_marginLeft="40dp"
android:layout_marginTop="20dp"
android:text="文件路径"
android:textAppearance="?android:attr/textAppearanceMedium" />
android:id="@+id/textViewFile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"/>
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textViewFile"
android:layout_below="@+id/textViewFile"
android:layout_marginTop="10dp"
android:text="上传网址"
android:textAppearance="?android:attr/textAppearanceMedium" />
android:id="@+id/textViewUrl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView3"
android:layout_below="@+id/textView3"/>
android:id="@+id/webViewResult"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_below="@+id/textViewUrl"
android:layout_marginTop="30dp"/>
android:id="@+id/buttonJava"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="60dp"
android:text="Java上传" />
android:id="@+id/buttonApache"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/buttonJava"
android:layout_toRightOf="@+id/buttonJava"
android:text="Apache上传" />
即可实现上传功能