2015-04-06 115 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. 

所以最后的问题是:我怎么能发送包含一个名称的另一个之后的参数?

+0

以何种方式没有按它工作吗?服务器期待什么以及它收到了什么? – Wain 2015-04-06 12:32:04

+0

@wain在php中,我写回声$ _POST ['theNameOfTheNewPostParameter']但它给了我什么,只是imageData。 – 2015-04-06 12:34:04

+0

只是好奇你为什么不使用NSURLSession或AFNetwoking? – 2015-04-06 13:21:05

回答

0

ü需要使用的multipart/form-data的上传图片与参数
这里是一个堆栈溢出链接Upload image with parameters in Swift

或U可以使用第三方库像SwiftHTTP

+0

非常感谢!我正在看! – 2015-04-06 13:42:50

0

试试这种方式...只包括在帖子正文中上传的人名。

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

postData.appendData(imageData); 

body.appendData(imageData); 
+0

它没有为我工作:( – 2015-04-06 12:54:32

相关问题