Поэтому с моего устройства iOS я планирую загрузить фотографию профиля пользователя на сервер php. Скорее всего, я буду использовать новую AFNetworking для этого. У меня вопрос, сколько файлов я должен разрешить на моей стороне PHP? По соображениям безопасности (просто чтобы быть в безопасности) я не хочу допускать нелепо большие изображения. есть ли предел, под которым все размеры IOS рис? что произойдет, если пользователь выберет картинку, которую он скачал из интернета или где-то еще, и его размер будет больше? Есть ли способ обеспечить уменьшение размера файла (без ущерба для качества) до определенного размера на стороне клиента?
Второй вопрос, который у меня есть — загружает ли изображения в кодировке base64 меньше по сравнению с обычными изображениями?
Последний вопрос — на устройстве ios есть ли способ проверить размер изображения? Я уверен, что есть какое-то приложение для этого. (без кода)
Мой PHP-сервер выглядит так:
$target_dir = "/Users/username/foldername/"; $target_dir = $target_dir . basename( $_FILES["uploadFile"]["name"]); $uploadOk=1; if ($_FILES["uploadFile"]["size"] > 500000) { echo "Sorry, your file is too large.\n"; $uploadOk = 0; } if ($_FILES["uploadFile"]["type"] != "image/png") { echo "Sorry, only png files are allowed. Your file type was ". $uploadFile_type; $uploadOk = 0; } if ($uploadOk == 1){ if (move_uploaded_file($_FILES["uploadFile"]["tmp_name"], $target_dir)) { echo "The file ". basename( $_FILES["uploadFile"]["name"]). " has been uploaded.\n"; } else { echo "Sorry, there was an error uploading your file.\n"; } } else { echo "Sorry, there was an error uploading your file.\n"; }
Это зависит от вас. Сначала выберите разрешение изображения (например, 300x300px, «Меньше», «Больше»), а затем соответствующим образом настройте размер файла. Например, вы можете быть уверены, что изображение JPEG размером 300×300 пикселей будет меньше 200 КБ, но если вы хотите изображение размером 3000 x 3000 пикселей, вам нужно выделить несколько МБ.
base64 — это форма кодирования, которая использует только 64 символа и, следовательно, будет на 1/3 больше, чем «нормальные» (некодированные) двоичные данные.
UIImagePickerController
возвращает UIImage
возражать против делегата. Вы можете получить размер изображения, получая доступ к size
свойство этого объекта (это CGSize
элемент).
Других решений пока нет …