2015-04-20 5 views
5

Also ich eine Datei von Swift auf einen PHP-Server hochladen, kommt die POST-Anfrage wie erwartet mit Kopfzeilen und alle, aber ich kann nichts aus $_FILES bekommen. Es ist nur ein leeres Array.Swift Upload-Datei auf PHP-Server

Ich bin eindeutig etwas falsch auf der Swift Seite zu tun, dies ist mein Code:

func testUpload(){ 
    let bundle = NSBundle.mainBundle() 
    let path = bundle.pathForResource("someTestFile", ofType: "zip")! 
    var data: NSData = NSData(contentsOfFile: path)! 

    var request = NSMutableURLRequest(URL: NSURL(string: "http://testsite.com/upload")!) 
    request.HTTPMethod = "POST" 

    let boundary = "----------ds2Gry67efddagdfsfhsHF" 
    let contentType = "multipart/form-data; boundary=\(boundary)" 
    request.setValue(contentType, forHTTPHeaderField:"Content-Type") 
    request.setValue("Keep-Alive", forHTTPHeaderField: "Connection") 
    self.uploadFiles(request, data: data) 
} 

func uploadFiles(request: NSURLRequest, data: NSData) { 
    var configuration = NSURLSessionConfiguration.defaultSessionConfiguration() 
    var session = NSURLSession(configuration: configuration, delegate: self, delegateQueue: NSOperationQueue.mainQueue()) 
    var task = session.uploadTaskWithRequest(request, fromData: data) 
    task.resume() 
} 

Ich bin ziemlich sicher, ich etwas fehle, ich kann einfach nicht herausfinden, was es ist. ..

+0

Vielleicht etwas zu tun mit contentDisposition hinzufügen? – matt

+0

möchten Sie stattdessen Alamofire verwenden? –

+0

siehe diese sehr gute Antwort http://stackoverflow.com/questions/26162616/upload-image-with-parameters-in-swift –

Antwort

-1

POST-Methode, müssen Sie Header application/x-www-form-urlencoded