作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个网站正在使用 ng-file-upload向后端发送上传图像的请求。它将图像转换成不同的大小并上传到 Amazon S3 服务器。它在网络上运行良好。我们的前端和后端都包含JS代码。
从iOS App,我们可以上传文件到AWS SDK for iOS ,但它花费的时间太多,而且请求一直超时。
根据需求,使用常规方法将文件从iOS App上传到服务器( Node ),然后转换为不同的大小(ng-file-upload - multiparty & GraphicsMagick) 然后上传到亚马逊服务器(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 后端使用多方。即使我们无法获取任何文件对象来填充进一步的步骤。它在后端引发错误。
从应用程序上传时,后端请求 header 中的文件详细信息为空。因此,我们收到类似 'path' undefined 的错误。
因此,我们没有将任何文件或图像发送到后端,因此无法进一步处理对话以及上传。我们被困在这个地方。
最佳答案
我认为你必须遵循两个步骤-
1-请在服务器( Node )上验证一次脚本文件名必须与从 iOS 发送的文件名相同。
2- 来自 ios 我们正在使用类似的方式在服务器上上传图片。
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\" ; filename=\"%@\"\r\n", imgName] dataUsingEncoding:NSUTF8StringEncoding]];
name=\"userfile\" 必须与服务器脚本匹配。
关于使用 Node.js 与 Multiparty 和 GraphicsMagick 将 iOS 图像上传到 S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39640227/
我是一名优秀的程序员,十分优秀!