2015-04-20 21 views
5

Quindi sto caricando un file da rapido a un server PHP, la richiesta POST arriva come previsto con le intestazioni e tutto ma non riesco a ottenere nulla da $_FILES. È solo un array vuoto.Swift carica il file sul server PHP

sto chiaramente facendo qualcosa di sbagliato sul lato Swift, questo è il mio codice:

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

Sono abbastanza sicuro che mi manca qualcosa, non riesco proprio a capire di cosa si tratta. ..

+0

Forse qualcosa a che fare con ContentDisposition? – matt

+0

hai in mente di utilizzare Alamofire? –

+0

vedi questa ottima risposta http://stackoverflow.com/questions/26162616/upload-image-with-parameters-in-swift –

risposta

-1

metodo POST, è necessario aggiungere l'applicazione di intestazione/x-www-form-urlencoded