2015-04-06 1 views
0

Это код, который загружает изображение, но я должен отправить еще один параметр POST, чтобы узнать, кто является пользователем, загружающим изображение.Как добавить дополнительный параметр POST?

var request = NSMutableURLRequest(URL: NSURL(string:"https://www.theweb.com/api/img.php")!) 

     request.HTTPMethod = "POST" 

     var boundary = NSString(format: "---------------------------14737809831466499882746641449") 
     var contentType = NSString(format: "multipart/form-data; boundary=%@",boundary) 
     // println("Content Type \(contentType)") 
     request.addValue(contentType, forHTTPHeaderField: "Content-Type") 
     request.HTTPBody = dataMeData 

     var body = NSMutableData.alloc() 


     // Image 
     body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!) 
     body.appendData(NSString(format:"Content-Disposition: form-data; name=\"userfile\"; filename=\"\(me)\"\\r\n").dataUsingEncoding(NSUTF8StringEncoding)!) 
     body.appendData(NSString(format: "Content-Type: application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!) 
     body.appendData(imageData) 
     body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!) 

     request.HTTPBody = body 

     var returnData = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil) 

     var returnString = NSString(data: returnData!, encoding: NSUTF8StringEncoding) 

     println("returnString \(returnString!)") 

Я попытался добавить следующее:

body.appendData(thePersonWhoUpload) ---> in NSData encoding it in UTF8 but it doesn't work. 

Таким образом, окончательный вопрос: как я могу послать еще один параметр POST, который содержит имя?

+0

В каком смысле Безразлично это работает? Что ожидает сервер и что он получает? – Wain

+0

@wain В php я пишу echo $ _POST ['theNameOfTheNewPostParameter'], но он дает мне что-нибудь, только imageData. –

+0

просто любопытно, почему вы не используете NSURLSession или AFNetwoking? –

ответ

0

U должны использоваться многокомпонентные/form-данные, чтобы загрузить изображение с параметром
здесь есть ссылка переполнение стека Upload image with parameters in Swift

Или и может использоваться библиотеки сторонних производителей, как SwiftHTTP

+0

Большое спасибо! Я смотрю! –

0

Попробуйте этот способ ... включить имя загруженного лица только в почтовое тело.

NSString *post = [NSString stringWithFormat:@"UploadedBy=%@ &",username]; 
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

postData.appendData(imageData); 

body.appendData(imageData); 
+0

Это не сработало для меня :( –