gpt4 book ai didi

使用 Node.js 与 Multiparty 和 GraphicsMagick 将 iOS 图像上传到 S3

转载 作者:行者123 更新时间:2023-11-29 00:40:26 25 4
gpt4 key购买 nike

我们有一个网站正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com