【问题标题】:How to send a image to a php file using Swift如何使用 Swift 将图像发送到 php 文件
【发布时间】:2014-10-17 11:18:00
【问题描述】:

对于我的应用程序,我需要将图像发送到 php 文件。 我已经知道如何使用这个发送字符串:

var bodyData = "info=test"

let URL: NSURL = NSURL(string: "LINK TO A PHP FILE")
let request:NSMutableURLRequest = NSMutableURLRequest(URL:URL)
request.HTTPMethod = "POST"
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding);
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue())
{
    (response, data, error) in
    println(NSString(data: data, encoding: NSUTF8StringEncoding))
}

在我的 php 文件中:

$info = $_POST['info'];

echo $info;

但我不知道如何发送图像

【问题讨论】:

    标签: php image post upload swift


    【解决方案1】:
    var imageData :NSData = UIImageJPEGRepresentation(imagenReduced, 1.0);       
    var request: NSMutableURLRequest?
    let HTTPMethod: String = "POST"
    var timeoutInterval: NSTimeInterval = 60
    var HTTPShouldHandleCookies: Bool = false
    
    request = NSMutableURLRequest(URL: url)
    request!.HTTPMethod = HTTPMethod
    request!.timeoutInterval = timeoutInterval
    request!.HTTPShouldHandleCookies = HTTPShouldHandleCookies
    
    
    let boundary = "----------SwIfTeRhTtPrEqUeStBoUnDaRy"
    let contentType = "multipart/form-data; boundary=\(boundary)"
    request!.setValue(contentType, forHTTPHeaderField:"Content-Type")
    var body = NSMutableData();
    
    
     let tempData = NSMutableData()
     let fileName = filenames + ".jpg" //"prueba.jpg"
     let parameterName = "userfile"
    
    
    let mimeType = "application/octet-stream"
    
    tempData.appendData("--\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
    let fileNameContentDisposition = fileName != nil ? "filename=\"\(fileName)\"" : ""
    let contentDisposition = "Content-Disposition: form-data; name=\"\(parameterName)\"; \(fileNameContentDisposition)\r\n"
    tempData.appendData(contentDisposition.dataUsingEncoding(NSUTF8StringEncoding)!)
    tempData.appendData("Content-Type: \(mimeType)\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
    tempData.appendData(imageData)
    tempData.appendData("\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
    
    body.appendData(tempData)
    
    body.appendData("\r\n--\(boundary)--\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
    
    request!.setValue("\(body.length)", forHTTPHeaderField: "Content-Length")
    request!.HTTPBody = body
    
    
    
    var vl_error :NSErrorPointer = nil
    var responseData  = NSURLConnection.sendSynchronousRequest(request,returningResponse: nil, error:vl_error)
    
    var results = NSString(data:responseData, encoding:NSUTF8StringEncoding)
    println("finish \(results)")
    

    【讨论】:

      【解决方案2】:
      //check this code 
      func callToProfileUpdate()
              {
      
                  let loadingNotification = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
                  loadingNotification.mode = MBProgressHUDMode.Indeterminate
                  loadingNotification.labelText = "Loading"
      
      
                  var userID: AnyObject! = NSUserDefaults.standardUserDefaults().valueForKey("USER_ID")
      
                  var urlString = NSString(string:"\(baseurl)action=update_profile&user_id=\(userID)&user_name=\(userName.text)&account_type=\(self.selectedAccountTypeLabel.text!)&show_comments=\(commentStauts)&tag_permission=\(tagPermission)")
      
                  urlString = urlString .stringByReplacingOccurrencesOfString(" ", withString: "%20")
      
                  var url = NSURL(string:urlString as String)
      
                  let urlRequest = NSMutableURLRequest(URL: url!)
      
                  if mediaData != nil
                  {
      
                      urlRequest.HTTPMethod = "POST"
      
                      var boundary = NSString(format: "---------------------------14737809831466499882746641449")
                      var contentType = NSString(format: "multipart/form-data; boundary=%@",boundary)
                      urlRequest.addValue(contentType as String, forHTTPHeaderField: "Content-Type")
      
                      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=\"photo\"; filename=\".png\"\\.png\n").dataUsingEncoding(NSUTF8StringEncoding)!)
      
                      body.appendData(NSString(format: "Content-Type: application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
                      body.appendData(mediaData)
                      body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
      
                      urlRequest.HTTPBody = body
      
                  }
      

      【讨论】:

        猜你喜欢
        • 2014-02-05
        • 2013-02-28
        • 2019-04-15
        • 1970-01-01
        • 2020-09-03
        • 1970-01-01
        • 2016-12-06
        • 2014-08-23
        • 1970-01-01
        相关资源
        最近更新 更多