2017-01-09 51 views
8

Jestem obecnie tworzeniem aplikacji przy użyciu iOS 10 i Swift 3 i Alamofire 4iOS Swift przesyłając plik PDF z Alamofire (wielowarstwowy)

Celem niniejszego wniosku jest załadować plik PDF wygenerowany wcześniej.

Generowanie pliku PDF działa idealnie i plik jest tworzony.

Przesyłanie nie działa ... Otrzymałem odpowiedź, ale plik nie został przesłany.

Moja odpowiedź serwera

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 

Używam wieloczęściowe przesłać swój plik jako dane jak widać here

url Plik jest w porządku.

Szukałem na SO, ale nie znaleźliśmy żadnych roztwór roboczy ...

Tutaj możesz zobaczyć moje kontroler

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) 
       } 
     }) 

Z góry dziękuję za pomoc.

Pozdrowienia

Odpowiedz

1

Właśnie znalazłem moje rozwiązanie, aby naprawić ten błąd.

Zapomniałem parametru nazwy pliku.

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

Dzięki za pomoc.