Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从iOS应用程序通过node.js将图像上载到服务器_Ios_Objective C_Node.js_File Upload - Fatal编程技术网

从iOS应用程序通过node.js将图像上载到服务器

从iOS应用程序通过node.js将图像上载到服务器,ios,objective-c,node.js,file-upload,Ios,Objective C,Node.js,File Upload,我正在开发一个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'

我正在开发一个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...
});

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

此代码在我的应用程序中有效。试试这个

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];

    }

你能展示你的客户端代码吗?你如何从你的nodejs服务器获取这个图像?从“request.body”还是“request.file”?你能举个例子吗