- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我迁移到 swift 3,为此我必须将 Alamofire 升级到 4,使用多部分请求上传图像在 swift 2 中工作正常,具有相同参数的相同 API 成功获得内部服务器错误 500这是工作正常的 swift 2.3 代码
Alamofire.upload(
.POST,
AppConstants.kAPIBaseURL + AppConstants.KAPIWidgetUrl + AppConstants.KAPIUpdateUserPhoto,headers: headers,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(data: imageData!, name: "image[image]", fileName: "myImage.png", mimeType: "image/png")
multipartFormData.appendBodyPart(data: "\((UserManager._currentUser?.userID)!)".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"id")
multipartFormData.appendBodyPart(data: "profile_picture".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"upload_to")
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON { (JSON) in
let abc = JSON.result.value as! NSDictionary
print(abc)
let arrayOfResult = abc["results"] as! NSDictionary
let responseMessage = abc["message"] as! String
let currentUser: MOUser?
currentUser = MOUser.init(object: arrayOfResult)
UserManager.setCurrentUser(currentUser)
dispatch_async(dispatch_get_main_queue(),{
//Show Alert in UI
print("image uploaded");
[self.showAlertViewWithTitle(AppConstants.kEmptyString, message: "\(responseMessage)", dismissCompletion: {
})]
})
}
case .Failure(let encodingError):
print(encodingError);
}
}
);
下面是有错误的Swift 3代码
Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(imageData!, withName: "image[image]", fileName: "myImage.png", mimeType: "image/png")
multipartFormData.append("\(UserManager._currentUser?.userID)".data(using: .utf8, allowLossyConversion: false)!, withName: "id")
multipartFormData.append("profile_picture".data(using: .utf8, allowLossyConversion: false)!, withName: "upload_to")
},
to: AppConstants.kAPIBaseURL + AppConstants.KAPIWidgetUrl + AppConstants.KAPIUpdateUserPhoto ,method: .post, headers: headers,
encodingCompletion: { encodingResult in
print(encodingResult)
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
print("SUCCESS RESPONSE: \(response)")
SVProgressHUD.dismiss()
if let info = response as? Dictionary<String, AnyObject> {
if let links = info["links"] as! Dictionary<String, AnyObject>? {
if let imgLink = links["image_link"] as? String {
print("LINK: \(imgLink)")
}
}
}
}
upload.uploadProgress { progress in
print(progress.fractionCompleted)
}
upload.responseString(completionHandler: { (response) in
print(response)
print(response.data)
print(response.debugDescription)
print(response.description)
print(response.result.description)
print(response.response)
})
case .failure(let encodingError):
SVProgressHUD.dismiss()
print("ERROR RESPONSE: \(encodingError)")
}//switch
}
);
服务器错误是这个
SUCCESS: {"status":"500","error":"Internal Server Error"}
SUCCESS
Optional(<NSHTTPURLResponse: 0x60000123cda0> { URL: https://../api///imageupload } { status code: 500, headers {
Connection = "keep-alive";
"Content-Length" = 48;
"Content-Type" = "application/json; charset=utf-8";
Date = "Wed, 11 Jan 2017 13:45:59 GMT";
Server = "WEBrick/1.3.1 (Ruby/2.0.0/2015-12-16)";
Via = "1.1 vegur";
"X-Rack-Cache" = "invalidate, pass";
"X-Request-Id" = "78cc7e5c-9bc1-4802-beac-15f8f7c4400a";
"X-Runtime" = "0.167883";
如果有人可以帮助我解决这个问题。谢谢!
最佳答案
这一行有区别:
multipartFormData.append("\(UserManager._currentUser?.userID)".data(using: .utf8, allowLossyConversion: false)!, withName: "id")`.
您不必像在 2.3 版本中那样强制解包 UserManager._currentUser?.userID
:
multipartFormData.appendBodyPart(data: "\((UserManager._currentUser?.userID)!)".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"id")
所以您的“id”字段的字符串可能类似于“Optional("userID")”,而不仅仅是您期望的用户 ID。
关于ios - 上传Multipart swift图片上传内部服务器错误500响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41592244/
根据HTML specs : If the contents of a file are submitted with a form, the file input should be identif
我能够找到很多关于 multipart/form-data 的信息,但关于 multipart/related 的信息却不多。在协议(protocol)/请求格式方面,谁能解释一下这两个http规范在
我尝试从项目详细信息页面添加图像。图像添加成功,但是当我尝试在 itemdetails 页面显示图像时,出现异常 org.springframework.web.multipart.Multipart
在 Spring Boot 中,对于分段上传,我看到许多教程站点都建议具有以下属性之一:spring.http.multipart.enabled=false或者spring.servlet.mult
我正在尝试向服务器发送多部分请求,但出现以下异常 HTTP 状态 500 - 请求处理失败;嵌套异常是 org.springframework.web.multipart.MultipartExcep
情况: 从 Node.js(通过 Node 核心 HTTPS 模块)向 spring-boot Java API 提交多部分表单请求。 API 需要两个表单数据元素: “路线” "file" 完全错误
上传到 webapi Controller 时,我仅在某些文件上收到错误。 错误是“MIME 多部分流。MIME 多部分消息不完整” 似乎该错误与某种未良好终止的 POST 数据相关联,但当我使用 f
我有一个有效的解决方案,但似乎很愚蠢,需要它。 这是我的工作解决方案: @PreAuthorize("isAuthenticated()") @ApiOperation(value = "Takes
这个问题已经有答案了: How can I upload files to a server using JSP/Servlet and Ajax? (4 个回答) 已关闭2 年前。 我尝试用java
我尝试通过包含的 CURL 发布 multipart/form-data, A JSON Object Stream object pdf and jpeg file curl -i -X POS
我在表单帖子中遇到了土耳其语字符问题, 我在尝试以下代码时遇到问题, // some input 但是当我尝试这个时它工作正常 // some input 为什么会这样? 最佳答案 在第一个示
我花了几天时间让 Spring Boot Upload 文件工作,但是,和 Spring 一样,你不知道魔法是如何工作的,即使在使用这个框架多年之后 - 你必须用谷歌搜索大量时间来解开哪里出了问题并解
我正在编写一个脚本,用于将文件上传到需要多部分请求的 cgi 脚本,例如 HTML 页面上的表单。 boundary 是一个唯一的标记,用于注释请求正文中的文件内容。这是一个示例正文: --BOUND
我有一个带有 Netty 的 jersy 2.13 的服务器应用程序,我尝试上传带有“multipart/form-data”的文件,但出现此错误。 错误信息: 7605 10:01:49.309
来自文档:“当您使用 TransferManager 下载文件时,该实用程序会自动确定对象是否为多部分” 来源:https://aws.amazon.com/fr/blogs/developer/pa
我需要有关发送多部分发布请求的帮助。主要问题是服务器无法识别我请求的帖子正文部分。服务器端在 android 上运行良好,但在 Qt 和 NetworkAccessManager 上运行不佳。 代码如
在 fragment B 中,我有一个用于将图像提交到服务器的提交按钮。单击提交按钮时,它将返回到 fragment A。我使用 Multipart 将图像上传到服务器,并且该进程在 Thread 上
我目前正在使用 Spring Boot v1.3.0.BUILD-SNAPSHOT 和 Spring v4.2.2.BUILD-SNAPSHOT。 如果我尝试执行多文件上传(通过 angular):
当我使用 JavaMailSender 发送带有附件的电子邮件时,它总是失败并抛出以下异常: org.springframework.mail.MailSendException: Failed me
我正在尝试在 NodeJS 上手动解析 multipart/formdata 请求。 请求中的所有内容均已正确解析(文件除外)。我正在读取文件数据,但它的长度比原始的短(在fiddler中,选择hex
我是一名优秀的程序员,十分优秀!