2015-06-24 5 views
2

Я разрабатываю приложение от Swift для Iphone/Ipad. Это адаптация приложения для Android. Проблема: У меня есть UIImage Я изменил размер. Я хочу преобразовать это в String для отправки запроса на PHP-сервере. я уже сделал в AndroidIOS Swift UIImage в base64 Строка для PHP

public static String BitMapToString(Bitmap bitmap) { 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
    byte[] b = baos.toByteArray(); 
    String temp = Base64.encodeToString(b, Base64.DEFAULT); 
    return temp; 
} 

Строка, возвращаемая считывается и сохраняется в виде изображения на сервере для PHP скрипт:

$lienphoto = "adressesurleserveur".$nomimage; 
$binary=base64_decode($image); 
$fichier = fopen($lienphoto, 'wb'); 
fwrite($fichier, $binary); 
fclose($fichier); 

Я хочу сделать то же самое с быстрым, я уже пробовал :

var imageData = UIImageJPEGRepresentation(imageChoisie, 1.0) 
let base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) 

и base64String соответствуют строкам, которые получает PHP. Это не работает, созданный файл «поврежден». Я пробую другие способы в течение нескольких часов, но у меня пока нет решения. Я не нашел сообщений в форумах с ответом на эту проблему.

Заранее благодарю вас за то, что вы дадите мне.

ответ

1

Я нашел решение.

Поправка делается в сценарии PHP:

$lienphoto = "adresse sur serveur".$nomimage; 

$data = str_replace('data:image/jpg;base64,', '', $image); 

$data = str_replace(' ', '+', $data); 

$data = base64_decode($data); 

$success = file_put_contents($lienphoto, $data); 

Этот подход предлагается на сайте:

http://www.tricksofit.com/2014/10/save-base64-encoded-image-to-file-using-php

Это сохраняет код Swift и Android. Мне просто нужно создать два сценария php для сохранения изображения.

+0

Какой бы быстрый код вы использовали для получения кодировки base64? – Eeshwar