@VegasChickiChicki

Как загрузить изображение на сервер?

Есть вот такая форма:
<form>
   <input type="file" id="image" name="file">
   <label for="image">
      <i class="fa fa-plus" aria-hidden="true"></i>
   </label>
</form>

При клике выполняется вот эта функция:
$.ajax({
            type: "POST",
            url: "./admin.php",
            data: {
                action: "addProjectPhoto",
                index: index,
            },
        });

Я немного поискал и нашел вот такой вот код и добавил условие:
if ($_POST['action'] && $_POST['action'] === 'addProjectPhoto'){
    if(isset($_FILES['file'])) {
      // проверяем, можно ли загружать изображение
      $check = can_upload($_FILES['file']);
    
      if($check === true){
        // загружаем изображение на сервер
        make_upload($_FILES['file']);
        echo "<strong>Файл успешно загружен!</strong>";
      }
      else{
        // выводим сообщение об ошибке
        echo "<strong>$check</strong>";  
      }
    }

   function can_upload($file){
	// если имя пустое, значит файл не выбран
    if($file['name'] == '')
		return 'Вы не выбрали файл.';
	
	/* если размер файла 0, значит его не пропустили настройки 
	сервера из-за того, что он слишком большой */
	if($file['size'] == 0)
		return 'Файл слишком большой.';
	
	// разбиваем имя файла по точке и получаем массив
	$getMime = explode('.', $file['name']);
	// нас интересует последний элемент массива - расширение
	$mime = strtolower(end($getMime));
	// объявим массив допустимых расширений
	$types = array('jpg', 'png', 'gif', 'bmp', 'jpeg');
	
	// если расширение не входит в список допустимых - return
	if(!in_array($mime, $types))
		return 'Недопустимый тип файла.';
	
	return true;
  }
  
  function make_upload($file){	
	// формируем уникальное имя картинки: случайное число и name
	$name = mt_rand(0, 10000) . $file['name'];
	copy($file['tmp_name'], 'img/' . $name);
  }
}

С PHP у меня мало опыта работы ,я его плохо знаю ,не могу понять как при AJAX запросе передать изображение.
Прошу помощи.
  • Вопрос задан
  • 144 просмотра
Решения вопроса 3
joeberetta
@joeberetta
1. Муж; 2. Frontend разработчик; 3. Студент
Тут обсуждалась ваша проблема и имеются решения
Ответ написан
slo_nik
@slo_nik Куратор тега PHP
Доброе утро.
Вот тут рабочий пример.
Ответ написан
TommyV888
@TommyV888 Куратор тега PHP
-
Вот тут достаточно подробная статья, с разбором практически каждой строки кода.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 июн. 2019, в 22:34
1500 руб./за проект
19 июн. 2019, в 21:38
100000 руб./за проект
19 июн. 2019, в 21:34
5000 руб./за проект