@Alex_mersvg

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

Как переименовать файл из input перед отправкой на сервер?
<input type="file" name="userfile">
с помощью $_FILES я могу получить инфу про файл. Но как мне переименовать его до того как я его отправлю на сервер?
  • Вопрос задан
  • 76 просмотров
Решения вопроса 2
DevMan
@DevMan Куратор тега PHP
зачем?
сохраните его на сервере с нужным именем и всех делов.
Ответ написан
@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 последних способа неправильные. Да, они буду работать, но так обычно не делают.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы