使用ASIHttpRequest上传pict。 iPhone客户端/ node.js服务器

时间:2011-12-10 08:39:47

标签: node.js asihttprequest express

在客户端,我使用ASIHttpRequest上传图片:

// upload on server
NSLog(@"Upload to server");
UIImage *im = [UIImage imageNamed:@"ok.png"];
NSData *da = UIImageJPEGRepresentation(im, 0.6);
NSLog(@"DATA:%@", da);

NSString *n =  [NSString stringWithFormat:@"%@/upload", @"http://localhost:3000"];
NSURL *url = [NSURL URLWithString:n];
NSLog(@"URL:%@",url);
ASIFormDataRequest *r = [ASIFormDataRequest requestWithURL:url];

[r setData:da 
withFileName:@"myphoto.ico" 
andContentType:@"image/jpeg"
      forKey:@"photo"];
[r setRequestMethod:@"POST"];
[r setShouldAttemptPersistentConnection:NO];
[r startSynchronous];
NSString *resp = [r responseString];
NSLog(@"RESPONSE:%@", resp);

在服务器端,我使用node.js:

app.post('/upload', function(req, res){
    console.log(req);
    console.log(req.params);
});

客户端的请求似乎没问题但是在检查服务器端的日志时,我没有看到与我发送的数据相关的任何内容。在这种情况下,在node.js上检索数据的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

您应该检查req.files,请参阅Connect中的官方示例(由Express内部使用):https://github.com/senchalabs/connect/blob/master/examples/bodyParser.js#L21-31

答案 1 :(得分:0)

使用Connect-Form和req.form.completed就可以了。