Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Копирование имя файла из поля input type="file" (https://javascript.ru/forum/events/51233-kopirovanie-imya-fajjla-iz-polya-input-type%3D-file.html)

Vinbongun 29.10.2014 15:25

Копирование имя файла из поля input type="file"
 
Здравствуйте.
Прошу Вас помочь мне в поиске подходящего класса для js.
На веб сервере фирмы крутится Oracle документоооборот.
Я каждый день вношу очень много информации в эту базу. Но есть одно неудобство. На страници загрузки документов, есть поле
<input id="fileUpload_oafileUpload" size="60" type="file" name="fileUpload_oafileUpload">
Тут я выбираю файл который нужно загрузить.
Но так же нужно скопировать имя файла в следующею строку
<textarea id="DescriptionNew" class="x4" onkeypress="return _checkLength(this,255,event)" onchange="return _checkLength(this,255,event)" name="DescriptionNew" cols="60" rows="2"></textarea>
Это крайне неудобного, и отнимает кучу времени на заполнение.
Есть ли возможность, выдернуть название файлы с помощью js не перезагружая/отправляя данные на следующую страницу?
Если есть, то я обверну js в расширение для Chrome или же в tampermonkey.
С уважением, Богдан.

CiliZ 29.10.2014 15:53

Название файла с расширением.
document.getElementById("fileUpload_oafileUpload").addEventListener("change",
        function (e) {
            document.getElementById("DescriptionNew").value = this.files[0].name;
        });


Только имя файла
document.getElementById("fileUpload_oafileUpload").addEventListener("change",
        function (e) {
            document.getElementById("DescriptionNew").value = this.name;
        });


Полный путь к файлу
document.getElementById("fileUpload_oafileUpload").addEventListener("change",
        function (e) {
            document.getElementById("DescriptionNew").value = this.value;
        });

Vinbongun 29.10.2014 17:19

Спасибо тебе огромное. Отблагодарил тебя плюсами.
Имя с файлом работает замечательно, жаль что не работает только название файла. Но все равно. Спасибо.

danik.js 29.10.2014 19:03

Цитата:

Сообщение от CiliZ
this.name

А это разве не имя инпута будет?

krasovsky 30.10.2014 08:20

Наверное так будет имя файла без расширения
document.getElementById("fileUpload_oafileUpload").addEventListener("change",
        function (e) {
            document.getElementById("DescriptionNew").value = this.files[0].name.replace(/\.\w+/,'');
        });


А полный путь будет - /fakepath/myfyle, что вряд ли нужно

Vinbongun 30.10.2014 13:10

Цитата:

Сообщение от CiliZ (Сообщение 338248)
Только имя файла
document.getElementById("fileUpload_oafileUpload").addEventListener("change",
        function (e) {
            document.getElementById("DescriptionNew").value = this.name;
        });


Спасибо огромное за решение. Лови плюсов.

danik.js 30.10.2014 18:50

Цитата:

Сообщение от Vinbongun
Спасибо огромное за решение

Ты просто кусок процитировал? Или именно это решение тебе подошло? Просто в файрфоксе выводит имя инпута. Вообще так и должно быть: this.name - имя инпута, а не файла.

Vinbongun 31.10.2014 10:18

Именно это решение и подошло. Я завернул в user script tampermonkey. И оно сработало

kostyanet 02.11.2014 18:52

Цитата:

Сообщение от CiliZ
Полный путь к файлу

Аахренеть...

kostyanet 02.11.2014 18:53

Цитата:

Сообщение от Vinbongun
Но так же нужно скопировать имя файла в следующею строку

А разрабам в сторожевую башню настучать не пробовали?


Часовой пояс GMT +3, время: 11:16.