如何在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 中将图像上传到服务器?
如何在 ASP.NET MVC 应用程序中将图像上传到 cloudinary?