0
iPadアプリを開発しています。これで私は正常にイメージをPDFファイルに変換したタスクがあります。HTTPリクエストを使用してサーバーにPDFファイルを保存します。
これで、変換したPDFファイルをサーバー側にHTTPリクエストで保存する必要があります。
HTTPリクエストを送信するとエラーが発生する正しい形式でないため、データを読み取れませんでした。
どこが間違っていますか?
私のコード
// url path to php file
let url = URL(string: "\(Config.path)/uploadAva.php")!
// declare request to this file
var request = URLRequest(url: url)
// declare method of passign inf to this file
request.httpMethod = "POST"
// param to be sent in body of request
let param = ["AppId":Config.AppID , "uuid":Config.uuid , "Id" : userID]
// body
let boundary = "Boundary-\(UUID().uuidString)"
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
// ... body
request.httpBody = createBody(param, filePathKey: "file", imageDataKey: pdfdata as Data, boundary: boundary)
// launc session
URLSession.shared.dataTask(with: request) { data, response, error in
// get main queue to communicate back to user
DispatchQueue.main.async(execute: {
if error == nil {
do {
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
print(json)
} catch {
//Here I get error as The data couldn’t be read because it isn’t in the correct format.
}
} else {
}
})
}.resume()
// custom body of HTTP request to upload pdf file
func createBody(_ parameters: [String: String]?, filePathKey: String?, imageDataKey: Data, boundary: String) -> Data {
let body = NSMutableData()
if parameters != nil {
for (key, value) in parameters! {
body.appendString("--\(boundary)\r\n")
body.appendString("Content-Disposition: attachment; name=\"\(key)\"\r\n\r\n")
body.appendString("\(value)\r\n")
}
}
let filename = "ava.pdf"
let mimetype = "application/pdf"
body.appendString("--\(boundary)\r\n")
body.appendString("Content-Type: application/pdf;name=\"ava10.pdf\"\r\n")
body.appendString("Content-Disposition:attachment;filename=\"ava10.pdf\"\r\n")
body.append(imageDataKey)
body.appendString("\r\n")
body.appendString("--\(boundary)--\r\n")
return body as Data
}
を追跡するいつものように。 –