如何在ios中将图像上传到服务器?

Posted

技术标签:

【中文标题】如何在ios中将图像上传到服务器?【英文标题】:how to upload image to server in ios? 【发布时间】:2014-04-15 17:34:14 【问题描述】:

我想使用 http post 方法将一张图片上传到服务器。 要求就像正文中的数据应该作为字节流附加。

我将图像转换为NSData 并将该数据附加到NSUrlrequest 的正文中。 但我在响应的状态码中得到 404

NSMutableData *body = [NSMutableData data];
[body appendData:[NSData dataWithData:UIImageData]];

[request setHTTPBody:body]; 

但我在状态码中收到 404 错误

字节流是否与NSData相同?

如果没有,那么如何使用NSURLConnection 将字节流数据发送到服务器?

提前致谢。

【问题讨论】:

请显示更多代码 您的错误很可能是由于您的 URL 不正确,但您应该将图片作为正文进行 Base64 编码。 请检查您的网址并参考此答案以检查您的代码:***.com/questions/8564833/… 请添加更多代码并通过此链接***.com/questions/20869848/… 【参考方案1】:

你用来发送图片的URL呢?

404 错误代码会转换为 Not Found (http://en.wikipedia.org/wiki/HTTP_404),因此第一步应该确保过去使用有效的 URL

【讨论】:

【参考方案2】:

尝试以这种方式上传:

NSData *yourData = //load your data here;

    NSMutableURLRequest *request= [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:UPLOAD_URL]];
    [request setHTTPMethod:@"POST"];

    NSString *boundary = @"---------------------------14737809831466499882746641449";
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"];
    NSMutableData *postbody = [NSMutableData data];
    [postbody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [postbody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", UPLOAD_FILE, UPLOAD_FILE] dataUsingEncoding:NSUTF8StringEncoding]];
    [postbody appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postbody appendData:[NSData dataWithData:yourData]];
    [postbody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPBody:postbody];

    connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

    [connection start];

【讨论】:

以上是关于如何在ios中将图像上传到服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 fetch 中传递 POST 参数以在 React Native 中将图像上传到服务器?

如何在 R 中将图像上传到 SQL Server

如何在 ASP.NET MVC 应用程序中将图像上传到 cloudinary?

如何在单个事务中将图像上传到 Firebase 存储并在数据库中保存参考?

如何在上传到服务器之前在 iOS 上压缩/调整图像大小?

如何在 Node.js 中将文件上传到 GCloud?