Задать вопрос
@Alex_mersvg

Как переименовать файл из input?

Как переименовать файл из input перед отправкой на сервер?
<input type="file" name="userfile">
с помощью $_FILES я могу получить инфу про файл. Но как мне переименовать его до того как я его отправлю на сервер?
  • Вопрос задан
  • 880 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
DevMan
@DevMan
зачем?
сохраните его на сервере с нужным именем и всех делов.
Ответ написан
zkrvndm
@zkrvndm
Архитектор решений
Есть 3 способа. Один правильный и 2 неправильных.

Первый способ (правильный) - это переименовать полученный файл непосредственно в php-обработчике.

Второй способ, отправка формы при помощи AJAX. В этом случае вы можете сами указывать имена для отправляемых файлов, для этого понадобится использовать конструктор FormData для того, чтобы собрать свой вариант формы.

Третий способ, подменять файл на лету непосредственно в поле выбора файла:
document.querySelector('input[type="file"]').addEventListener('change', function() {
	if (this.files.length > 0) {
		var file_name = 'Новое название.jpg';
		if (this.files[0].name !== file_name) {
			var new_file = new File([this.files[0]], file_name, {type: this.files[0].type});
			new_file.name = file_name;
			var dt = new DataTransfer();
			dt.items.add(new_file);
			this.files = dt.files;
		}
	}
});

Думаю вполне понятно, что 2 последних способа неправильные. Да, они буду работать, но так обычно не делают.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽