Быстрая загрузка нескольких изображений на сервер

Я пытаюсь загрузить несколько изображений на сервер в swift. Это мой код:

Swift:

var images: Int16 = 0 var params: NSMutableDictionary = NSMutableDictionary() var imageDataArray = [UIImage]() func syncFile() { let myUrl = NSURL(string: "http://localhost/app/imageUpload.php") let request = NSMutableURLRequest(URL: myUrl!) request.HTTPMethod = "POST" let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() let authToken = prefs.valueForKey("authToken") as! String let boundary = generateBoundaryString() request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") request.addValue("application/json", forHTTPHeaderField: "Accept") switch images { case 0: imageDataArray = [] case 1: imageDataArray.append(self.imageView1.image!) case 2: imageDataArray.append(self.imageView1.image!) imageDataArray.append(self.imageView2.image!) case 3: imageDataArray.append(self.imageView1.image!) imageDataArray.append(self.imageView2.image!) imageDataArray.append(self.imageView3.image!) default: break } params = [ "auth_code" : "\(authToken)", "id" : "\(idParam)", "file" : imageDataArray ] request.HTTPBody = createBodyWithParameters(params, filePathKey: "file", boundary: boundary) func createBodyWithParameters(parameters: NSMutableDictionary?, filePathKey: String?, boundary: String) -> NSData { let body = NSMutableData() if parameters != nil { for (key, value) in parameters! { if(value is String || value is NSString){ body.appendString("--\(boundary)\r\n") body.appendString("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n") body.appendString("\(value)\r\n") } else if(value is [UIImage]){ var i = 0 for image in value as! [UIImage] { let filename = "image\(i).png" let data = UIImagePNGRepresentation(image) let mimetype = mimeTypeForPath(filename) let fileKey = "file" body.appendString("--\(boundary)\r\n") body.appendString("Content-Disposition: form-data; name=\"\(fileKey)\"; filename=\"\(filename)\"\r\n") body.appendString("Content-Type: \(mimetype)\r\n\r\n") body.appendData(data!) body.appendString("\r\n") i = i + 1 } } } } body.appendString("--\(boundary)--\r\n") return body } func generateBoundaryString() -> String { return "Boundary-\(NSUUID().UUIDString)" } func mimeTypeForPath(path: String) -> String { let pathUrl = NSURL(string: path) let pathExtension = pathUrl!.pathExtension var stringMimeType = "application/octet-stream" if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension!, nil)?.takeRetainedValue() { if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() { stringMimeType = mimetype as NSString as String } } return stringMimeType; } 

И вот мой PHP-код:

 <?php header('Content-type: application/json'); $target_dir = "uploads"; if(!file_exists($target_dir)) { mkdir($target_dir, 0777, true); } $total = count($_FILES["file"]["name"]); for($i=0; $i < $total; $i++){ $target_dir1 = $target_dir . "/" . basename($_FILES["file"]["name"][$i]); if (move_uploaded_file($_FILES["file"]["tmp_name"][$i], $target_dir1)) { echo json_encode([ "Message" => "The file ". basename( $_FILES["file"]["name"][$i]). " has been uploaded.", "Status" => "OK" ]); } else { echo json_encode([ "Message" => "Sorry, there was an error uploading your file.", "Status" => "Error" ]); } } ?> 

Но когда я распечатываю данные ответа, я получаю сообщение об ошибке: {«Сообщение»: «Извините, произошла ошибка при загрузке вашего файла.», «Статус»: «Ошибка»}

Однако, если я удалю цикл из php-кода и загружу только одно изображение с тем же быстрым кодом, он успешно загрузит это изображение.