Загрузка файлов с iOS на сервер php — какой размер файла мне следует разрешить?

  1. Поэтому с моего устройства iOS я планирую загрузить фотографию профиля пользователя на сервер php. Скорее всего, я буду использовать новую AFNetworking для этого. У меня вопрос, сколько файлов я должен разрешить на моей стороне PHP? По соображениям безопасности (просто чтобы быть в безопасности) я не хочу допускать нелепо большие изображения. есть ли предел, под которым все размеры IOS рис? что произойдет, если пользователь выберет картинку, которую он скачал из интернета или где-то еще, и его размер будет больше? Есть ли способ обеспечить уменьшение размера файла (без ущерба для качества) до определенного размера на стороне клиента?

  2. Второй вопрос, который у меня есть — загружает ли изображения в кодировке base64 меньше по сравнению с обычными изображениями?

  3. Последний вопрос — на устройстве 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";
}

0

Решение

  1. Это зависит от вас. Сначала выберите разрешение изображения (например, 300x300px, «Меньше», «Больше»), а затем соответствующим образом настройте размер файла. Например, вы можете быть уверены, что изображение JPEG размером 300×300 пикселей будет меньше 200 КБ, но если вы хотите изображение размером 3000 x 3000 пикселей, вам нужно выделить несколько МБ.

  2. base64 — это форма кодирования, которая использует только 64 символа и, следовательно, будет на 1/3 больше, чем «нормальные» (некодированные) двоичные данные.

  3. UIImagePickerController возвращает UIImage возражать против делегата. Вы можете получить размер изображения, получая доступ к size свойство этого объекта (это CGSize элемент).

1

Другие решения

Других решений пока нет …