javascript создание файлов на стороне клиента без участия сервера
Как с помощью javascript можно реализовать создание файлов, есть вот такая html структура. Смысл в том что при выборе, создается текстовый документ, по указанному пути.
Путь создания файлов
Отслеживать
1,508 10 10 серебряных знаков 27 27 бронзовых знаков
задан 2 ноя 2015 в 15:06
Stasinskii Stasinskii
59 1 1 золотой знак 2 2 серебряных знака 12 12 бронзовых знаков
Возможный дубликат вопроса: Создать файл при помощь javascript
2 ноя 2015 в 15:15
@ДенисФедичкин, а там разве есть принятый ответ?
2 ноя 2015 в 15:44
да я смотрел его, но решил еще раз задать его потому что наткнулся вот на это it.kgsu.ru/JS/js0062.html
2 ноя 2015 в 15:47
@ДенисФедичкин, не дубликат — там хотят файл на сервере, а тут — на клиенте.
2 ноя 2015 в 15:49
@Qwertiy, там тоже хотели на клиенте
2 ноя 2015 в 15:52
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Из чистого JavaScript в браузере файл можно только скачать – через диалог Сохранения файла. Помимо упомянутых @Дмитрий-Никитин способов, есть ещё Blob поддерживаемый современными браузерами, который предпочтителен при объёмах данных больше нескольких мегабайт.
Если вам это нужно исключительно локально, и программировать хочется только на JavaScript – вариант поставить локально Node.js – он умеет создавать локальные файлы через Filesystem API, например (код отсюда):
var fs = require('fs'); fs.writeFile('D:\\textfile.txt', "Превед", function(err) < if(err) < return console.log(err); >console.log("Файл сохранён."); >);
Отслеживать
ответ дан 2 ноя 2015 в 19:19
30.7k 4 4 золотых знака 48 48 серебряных знаков 86 86 бронзовых знаков
ооо спасибо, думаю будет хорошим решением, потому что уже стоит Node.js
4 ноя 2015 в 12:42
JavaScript выполняется в браузере, отправить файл на скачивание можно двумя способами:
- base64-encoded контентом, например: window.location.href = ‘data:application/octet-stream;base64. ‘ Которая будет обрабатываться браузером в соотвествии с настройками программ по умолчанию
- Аттрибутом download http://caniuse.com/#search=download
Отслеживать
16.6k 8 8 золотых знаков 26 26 серебряных знаков 56 56 бронзовых знаков
ответ дан 2 ноя 2015 в 15:29
Дмитрий Никитин Дмитрий Никитин
21 2 2 бронзовых знака
это тогда если у меня 10 файлов на создании то я их буду всех скачивать? мне нужно чтоб я это не видел, все тихо создалось.
Как создать Javascript (js) файл.
Многие начинающие веб-программисты, когда они начинают изучать Javascript, сталкиваются с проблемой:
Как создать файл с расширением js, в котором будет размещаться javascript код?
Помню, как я тоже на первых порах столкнулся с этой проблемой. Такой вопрос может возникать из-за непонимания того, что собой представляет Javascript код.
В первую очередь, нужно понимать, что javascript – это обычный текст, который написан по определенным правилам. Соответственно, храниться этот текст тоже должен в текстовом документе.
Единственное отличие этого текстового документа от простого текстового файла – это его расширение. Javascript файлы имеют расширение *.js.
Таким образом, вся задача состоит в том, чтобы создать текстовый документ и изменить его расширение.
Хочу рассказать о тех способах создания файла с расширением js, которыми я сам лично пользуюсь.
Все мои уроки по Javascript здесь.
Способ 1. Создание файла js из обычного текстового документа.
Открываем программу «Блокнот», которая входит в стандартный пакет операционной системы Windows.

Если у вас этой программы нет, то можете воспользоваться другим текстовым редактором.
Создаем новый документ и сохраняем его, выбрав в главном меню команду «Файл-сохранить как…»

После того, как файл будет сохранен, нужно открыть папку, где вы его сохранили и переименовать файл, изменив его расширение на js.
Если расширение файлов у вас не отображается, то здесь можно почитать, как его можно включить.
После этой операции, файл для работы с Javascript готов.
Способ 2. Создание файла js в редакторе кода Dreamweaver.
Этим способом я пользуюсь намного чаще, по причине того, что это просто быстрее и удобнее. Создать файл js можно с помощью универсального редактора кода Dreamweaver.
Имейте в виду, что Dreamweaver – это далеко не единственная программа, которая на это способна. Очень многие редакторы кода тоже позволяют также создавать файлы с расширением js.
При первом запуске программы, появляется следующее окно, в котором можно выбрать, что мы хотим создать документ js.

Выбираем его и сохраняем документ.
Если такое окно приветствия у вас не открылось, то можно воспользоваться главным меню «Файл – Создать новый документ» и выбираем «Javascript».
Если у вас возникнут какие-то вопросы или проблемы с созданием, файлов js таким способом, прошу написать об этом в комментариях.
Все мои уроки по Javascript здесь.
Создание файлов при помощи JavaScript и VBScript
На первый взгляд эта функция может показаться бесполезной, однако, как вы занесете данные в файл, не имея самого файла, не будем же мы портить фалы посетителя нашей страници.
Для того, чтобы создать пустой файл с помощью VBSctipt надо написать в HTML-файле следующий код:
Ту же самую функцию выполняет и следующий код, написанный уже на JavaScirpt:
Вот теперь, создав чистый файл, можно приступить к его заполнению.
2. Запись данных в файл
Открытие файла. Для того, чтобы открыть файл надо применить следующий скрипт:
Dim fso, ts Const ForWriting = 2 Set fso = CreateObject("Scripting. FileSystemObject") Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True)
Данный скипт написан на VBScript. Здесь по-моему все понятно. ForWriting — флаг, показывающий зачем открывать файл. Вот тот же скрипт на JavaScript:
var fso, ts; var ForWriting= 2; fso = new ActiveXObject("Scripting.FileSystemObject"); ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
Надо отметить, что при этом файлы будут автоматически создаваться.
Непосредственная запись в файл. Для занесения строчек текста в файл используется следующие методы:
| Задача | Метод |
| Вставка новой строки, с последующей возможностью добавления в этуже строку данных, т.е. в конце строки нет символов переноса строки и возврата каретки. | Write |
| Вставка новой строки с переносом на следующую. | WriteLine |
| Вставка одной или несколких пустых строк. | WriteBlankLines |
Вот примеры скриптов. На VBScript:
Sub CreateFile() Dim fso, tf Set fso = CreateObject("Scripting.FileSystemObject") Set tf = fso.CreateTextFile("c:\testfile.txt", True) ' Вставка строки с переносом на новую. tf.WriteLine("Testing 1, 2, 3.") ' Вставка 3 путых строк. tf.WriteBlankLines(3) ' Вставка новой строки, без переноса. tf.Write ("This is a test.") ' Закрытие файла. tf.Close End Sub
function CreateFile() < var fso, tf; fso = new ActiveXObject("Scripting.FileSystemObject"); tf = fso.CreateTextFile("c:\\testfile.txt", true); // Вставка строки с переносом на новую. tf.WriteLine("Testing 1, 2, 3.") ; // Вставка 3 пустых строк. tf.WriteBlankLines(3) ; // Вставка новой строки, без переноса. tf.Write ("This is a test."); ' Закрытие файла. tf.Close(); >
Вот и все. Что с этим делом делать, вы наверное уже знаете. В мирных целях эта возможность создавать файлы на клиентских машинах очень полезна. Можно предложить посетителю скачать ваш фирменных значок и установить его в кчестве значка дика C, D, E, F, . Z. Можно создать autorun для диска X, в котором будет прописана строка, которая позволит загружать ваш фирменный сайт при запуске этого диска. Сохранение настроек без использования cookies и т. д. и т.п. На этой оптимистической ноте я заканчиваю.
Как создать файл javascript
На этом шаге мы рассмотрим функцию, создающую текстовый файл .
Чтобы создать текстовый файл на диске, следует выполнить следующие команды:
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CreateTextFile(filepath);
Конструкция fso.CreateTextFile(filepath) создает указанный файл, открывает с доступом для записи и возвращает ссылку на него, если операция прошла успешно. В противном случае выводится диалоговое окно с сообщением об ошибке. Созданный файл остается недоступным для записи.
filepath — строка, содержащая полный путь к создаваемому файлу, например «С:\\ Мои документы \\testfile.txt» . Для выполнения с помощью WSH вместо первого выражения можно использовать и такое:
var fso = WScript.CreateObject("Scripting.FileSystemObject");
Второй способ создания текстового файла основан на применении метода OpenTextFile с параметром режима открытия ForWriting . Этот параметр имеет значение 2. Это делается следующим образом:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.OpenTextFile(filepath, 2);
Новый текстовый файл, созданный описанными выше методами, ничего не содержит. Создаваемый и открываемый для чтения или записи текстовый файл совсем не обязательно должен иметь расширение txt . Расширение может быть любым. Главное, чтобы он был текстовым по своему типу.
При создании файла на диске прежде всего необходимо убедиться в возможности это сделать, чтобы избежать появления сообщений об ошибках. Так, если хотя бы одна из папок в пути к файлу не существует, то попытка применить метод CreateTextFile() приведет к ошибке. Ошибка возникнет и в случае неготовности диска, отсутствия указанного дисковода, а также в случае, если это устройство для чтения компакт-дисков. Ниже приведен код функции createFile(filepath) , которая выполняет все необходимые проверки. Кроме того, создаются папки, указанные в filepath , но не существующие.
Код функции createFile(filepath) :
// Создание текстового файла. Возвращает ссылку на // созданный файл или 0, если файл не создан function createFile(filepath) < var fso = new ActiveXObject("Scripting.FileSystemObject"); var i = filepath.lastIndexOf("\\"); // Выделяем имя файла из filepath if (i>=0) file = filepath.substr(i+1); // Выделяем путь к файлу без имени файла var folder = filepath.slice(0, i); // Проверки и создание недостающих папок if (!createFolder(folder)) return 0; // Если файл существует, то. if (fso.FileExists(file)) // . открываем его для записи return fso.OpenTextFile(filepath, 2); // Создаем файл и возвращаем ссылку на него return fso.CreateTextFile(folder + "\\" + file); >
Функция createFolder() создает папки. Она производит все проверки и при необходимости создает недостающие папки. Если указанный в параметре filepath файл уже существует на диске, то он открывается для записи.
- GetBaseName(filepath); — возвращает последний элемент в filepath без расширения;
- GetExtensionName(filepath); — возвращает расширение последнего элемента в filepath .
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.GetBaseName("C:\\Мои документы\\testfile.txt"); // testfile fso.GetExtensionName("С:\\Мои документы\\testfile.txt"); // txt
He менее полезным является метод BuildPath(path, name) , который к пути path дописывает элемент name :
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.BuildPath("C:\\Мои документы", "testfile.txt");
Если файл был создан, то он остается открытым. Чтобы закрыть файл, используется метод Close() .
// Создание и закрытие файла: var fso = new ActiveXObject("Scripting.FileSystemObject"); var myfile = fso.CreateTextFile("С:\\Мои документы\\testfile.txt"); var myfile.Close(); // Открытие и закрытие файла: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.OpenTextFile("С:\\Мои документы\\testfile.txt", 2); var myfile.Close(); // Создание/открытие и закрытие файла: var myfile = createFile("C:\\Мои документы\\testfile.txt"); var myfile.Close();
В заключение приведем пример, иллюстрирующий использование рассмотренных конструкций.
Создание файла
Текст этого документа можно взять здесь.
Результат его выполнения в браузере изображен на рисунке 1.
Рис.1. Результат выполнения функции создания файла
На следующем шаге мы рассмотрим другие операции, выполняемые над файлами .
