2015-06-09 2 views
4

Я бы хотел, чтобы мои пользователи имели возможность переименовать файл перед его загрузкой.Переименование объекта File() в JavaScript

У меня есть объект File в Javascript, у которого есть свойство name, которое уже установлено, но я бы хотел, чтобы это было возможно обновить. Прямо сейчас, когда очевидный myFile.name = "new-name.txt" возвращает ошибку, что это свойство только для чтения.

Каков наилучший способ изменения свойства name на объекте JavaScript File?

ответ

2

Вы можете добавить тэг input с его именем и скрыть объект name. На сервере просто используйте input в качестве имени и игнорируйте имя по умолчанию.

+0

У меня уже есть клиентская сторона '' для ввода имени пользователя. Прямо сейчас это может быть единственным возможным вариантом, насколько я могу судить :(Все еще смотря, хотя ... –

+0

Да, объекты 'File' неизменны. Делать это, кажется, наилучшим образом, я мог бы собрать вместе взломать данные файла, превратить его в «Blob» с новым именем, а затем превратить его в «Файл», но этот маршрут намного проще. –

2

попробовать это:

var blob = file.slice(0, -1, 'image/png'); 
var newFile = new File([blob], 'name.png', {type: 'image/png'}); 

примечание: это для типа изображения, вы должны изменить этот тип с типом вы фактически используете.

+0

Я бы сказал, если вы работаете с объектом File в любом случае, использовать: 'var blob = file.slice (0, file.size, file.type)' – carestad

Смежные вопросы