Fel*_*ahm 2 iphone objective-c http-headers node.js ios
更新:这已于2011年5月16日在phonegap github存储库中修复.
我有以下Objective-C代码:
NSData *photoData = [NSData dataWithContentsOfFile:photoPath];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"photo-file\"; filename=\"%@\"\r\n", " my-photo.jpg"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:photoData];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
[request addValue:[NSString stringWithFormat:@"%d", body.length] forHTTPHeaderField: @"Content-Length"];
[[NSURLConnection alloc] initWithRequest:request delegate:appDelegate];
[photoData release];
[body release];
[request release];
Run Code Online (Sandbox Code Playgroud)
我正在尝试将图像从iPhone发布到使用node-formidable的node.js服务器.服务器已经正常处理从浏览器发布的图像,但当我尝试从我的iPhone发布时,我收到以下错误:
错误:MultipartParser.end():流在IncomingMessage.anonymous(formidable/1.0.0/package /)的MultipartParser.end(/formidable/1.0.0/package/lib/formidable/multipart_parser.js:301:12)意外结束lib/formidable/incoming_form.js:80:30)在Socket.ondata的HTTPParser.onMessageComplete(http.js:132:23)的IncomingMessage.emit(events.js:61:17)中(http.js:1001:22) )在IOWatcher.onReadable的Socket._onReadable(net.js:677:27)作为回调(net.js:177:10)
该图像被正确地保存在服务器上的临时文件夹,但它的节点强大抛出一个错误的一个尝试解析表单时.
显然,强大的结束边界非常挑剔.试试这个:
NSMutableData* body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image\"; filename=\"%@\"\r\n", imageName] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Type: %@\r\n\r\n", @"image/jpeg"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[urlRequest setHTTPBody:body];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1997 次 |
| 最近记录: |