2017-01-09 22 views
8

Tôi hiện đang phát triển một ứng dụng sử dụng iOS 10 và Swift 3 và Alamofire 4iOS Swift tải lên tệp PDF với Alamofire (Multipart)

Mục đích của ứng dụng này là tải lên tệp PDF được tạo trước đó.

Thế hệ PDF hoạt động hoàn hảo và tệp được tạo.

Tuy nhiên, quá trình tải lên không hoạt động… Tôi đã nhận được phản hồi thành công nhưng tệp không được tải lên.

phản ứng Máy chủ của tôi

Multi part Content-Type => multipart/form-data; boundary=alamofire.boundary.56958be35bdb49cb 
Multi part Content-Length => 293107 
Multi part Content-Boundary => alamofire.boundary.56958be35bdb49cb 
responses 
SUCCESS: { 
    uploadedFiles =  (
       { 
      details = " Key=Content-Disposition - values=[form-data; name=\"pdfDocuments\"] length=8"; 
      storedFileName = "/var/www/pdf/17/009/22/TMP104150531290406.tmp"; 
      type = PDF; 
      uploadedDate = 1483999296701; 
      uploadedFileName = UnknownFile; 
     } 
    ); 
} 
end responses 

Tôi đang sử dụng đa phần để tải lên tập tin của tôi như là dữ liệu như bạn có thể nhìn thấy here

url tập tin là tốt.

tôi đã tìm kiếm trên SO nhưng không tìm thấy bất kỳ giải pháp làm việc ...

Ở đây bạn có thể thấy điều khiển tôi

Alamofire.upload(
      multipartFormData: { 
       multipartFormData in 

       if let urlString = urlBase2 { 
        let pdfData = try! Data(contentsOf: urlString.asURL()) 
        var data : Data = pdfData 

        multipartFormData.append(data as Data, withName:"test.pdf", mimeType:"application/pdf") 
        for (key, value) in body { 
         multipartFormData.append(((value as? String)?.data(using: .utf8))!, withName: key) 
        } 

        print("Multi part Content -Type") 
        print(multipartFormData.contentType) 
        print("Multi part FIN ") 
        print("Multi part Content-Length") 
        print(multipartFormData.contentLength) 
        print("Multi part Content-Boundary") 
        print(multipartFormData.boundary) 
       } 
     }, 
      to: url, 
      method: .post, 
      headers: header, 
      encodingCompletion: { encodingResult in 

       switch encodingResult { 

       case .success(let upload, _, _): 
        upload.responseJSON { response in 
         print(" responses ") 
         print(response) 
         print("end responses") 

         onCompletion(true, "Something bad happen...", 200) 

        } 
       case .failure(let encodingError): 
        print(encodingError) 
        onCompletion(false, "Something bad happen...", 200) 
       } 
     }) 

Cảm ơn trước sự giúp đỡ.

Kính trọng

Trả lời

1

Tôi vừa tìm ra giải pháp để khắc phục lỗi này.

Tôi đã quên tham số cho tên tệp.

multipartFormData.append(pdfData, withName: "pdfDocuments", fileName: namePDF, mimeType:"application/pdf") 

Cảm ơn sự giúp đỡ.

Các vấn đề liên quan