通过iOS应用程序中的node.js将图像上传到服务器

我正在开发一个iOS应用程序,我使用node.js进行服务器端脚本编写.我在iOS应用程序上将图像上传到服务器时遇到问题.如果我从网页表单上传图片,它工作正常.但是,如果从应用程序端上传它不起作用.
//test file
 h3 Pic Upload
 form(action='/pic_upload',method='post',enctype='multipart/form-data') 
  | user_pic:
  input(type='file',name='user_pic')
  input(type='submit')

 //app.js
 var userlogin =require('./routes/userlogin');
 app.post('/pic_upload',userlogin.picUpload);

//userlogin.js
//picUpload function
exports.picUpload = function(req,res) {
console.log(req.files);  // showing undefined,when called from IOS app
// pic upload script...
});

我尝试从应用程序端发送图像作为数据或文件参数,但它不起作用.如何从app端发送文件参数,以便我可以轻松地将图像上传到服务器?请建议一种解决问题的方法.

解决方法

代码适用于我的应用.试试这个.
NSData *imgData = UIImageJPEGRepresentation(newImg,0.2);

Nsstring *str = @"displayImage";

    Nsstring *urlString = @"http://some.url.com/post";

    // create request
    NSMutableuRLRequest *request = [[NSMutableuRLRequest alloc] init];
    [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
    [request setHTTPShouldHandleCookies:NO];
    [request setTimeoutInterval:30];
    [request setURL:[NSURL URLWithString:urlString]];

    [request setHTTPMethod:@"POST"];

    Nsstring *boundary = [Nsstring stringWithFormat:@"---------------------------14737809831464368775746641449"];

    // set Content-Type in HTTP header
    Nsstring *contentType = [Nsstring stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
    [request setValue:contentType forHTTPHeaderField: @"Content-Type"];

    // post body
    NSMutableData *body = [NSMutableData data];

    // add params (all params are strings)
        [body appendData:[[Nsstring stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[Nsstring stringWithFormat:@"Content-disposition: form-data; name=\"currentEventID\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[@"52344457901000006" dataUsingEncoding:NSUTF8StringEncoding]];


    // add image data
    if (imgData) {
        [body appendData:[[Nsstring stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
       // [body appendData:[Nsstring stringWithFormat:@"Content-disposition: form-data; name=\"displayImage\"; filename=\"image.jpg\"\r\n"]];
        [body appendData:[[Nsstring stringWithFormat:@"Content-disposition: form-data; name=\"%@\"; filename=\"image.jpg\"\r\n",str] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:imgData];
        [body appendData:[[Nsstring stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    }

    [body appendData:[[Nsstring stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    // setting the body of the post to the reqeust
    [request setHTTPBody:body];

    // set URL
    [request setURL:[NSURL URLWithString:urlString]];

    Nsstring *bodyStr = [[Nsstring alloc]initWithData:body encoding:NSUTF8StringEncoding];
    NSLog(@" %@",bodyStr);

    NSURLConnection *lot_Connection=[[NSURLConnection alloc]initWithRequest:request delegate:self];

    if(lot_Connection)
    {
        webdata = [[NSMutableData alloc] init];

    }

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...