[英]iOS Image upload to S3 by using Node.js with Multiparty and GraphicsMagick
我们有一个网站正在使用ng-file-upload向后端发送请求以上传图像。 它将图像转换为不同大小并上传到Amazon S3服务器。 它在网络上运行良好。 我们的前端和后端包含JS代码。
通过iOS App,我们可以将文件上传到iOS的AWS开发工具包 ,但是这会花费太多时间,而且请求总是超时。
根据要求,通过使用传统方法将文件从iOS App上传到服务器(节点) ,然后转换为不同大小(ng-file-upload-multiparty&GraphicsMagick) ,然后上传到Amazon服务器(S3) 。
因此,我们使用传统方法将图像上传到后端服务器。
图片上传代码
NSMutableURLRequest *urlRequest = [NSMutableURLRequest
requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:DEFAULT_TIMEOUT];
[urlRequest setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831464368775746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[urlRequest addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
//Image
if(imageData)
{
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", imgName, imgName] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:imageData];
[body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
}
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[urlRequest setHTTPBody:body];
我们在node.js后端中使用多方 。 甚至我们也无法获取任何文件对象来填充进一步的步骤。 它在后端抛出错误。
从应用程序上载时,后端的“ 请求”标头中的文件详细信息为空。 因此,我们收到类似'path'undefined的错误。
因此,我们没有将任何文件或图像上传到后端,因此无法进一步处理对话以及上传。 我们停留在这个地方。
我认为您必须遵循两个步骤-
1-请在服务器(节点)上验证一次脚本文件名必须与从iOS发送的文件名相同。
2-从ios我们正在使用类似的方法在服务器上上传图像。
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\" ; filename=\"%@\"\r\n", imgName] dataUsingEncoding:NSUTF8StringEncoding]];
name = \\“ userfile \\”必须与服务器脚本匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.