Как создать файл при помощи JavaScript?

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
Аватара пользователя
Timofey
Сообщения: 32
Зарегистрирован: 28 апр 2006, 11:42
Откуда: Владивосток
Контактная информация:

Задача стоит такая. Есть шаблон страницы, в котором будут меняться данные и выкладываться на сайт. Я хочу сделать скрипт, который взаимодействуя с пользователем вносил бы данные в шаблон и сохранял в новом файле. Почитав топики, где затрагивается работа с файлами, я понял, что надо создавать объект ActiveX командой fso = new ActiveXObject("Scripting.FileSystemObject");. У меня не получается, FrontPage говорит, что "Невозможно создание объекта сервером программирования объектов".
И всё же у меня есть два виденья написания скрипта:
1. В результате взаимодействия с пользователем весь текст страницы (HTML код изменённого шаблона) храниться в переменной, а по окончании внесения данных значение переменной сохраняется в файле.
2. В результате взаимодействия с пользователем изменяется HTML код самого шаблона (отдельный файл), по окончании внесения данных изменённый шаблон сохраняется.
Лично я склоняюсь к первому варианту. Но я даже не представляю с какой стороны подступиться к этому вопросу. Помогите записать значение переменной в файл или изменить текст файла (если это легче или лучше). Расширение созданного файла не важно я его сам исправлю (опять же, если по другому не получается).
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

js язык клиентского выполнения (тобишь выполняется на клиенте, впрочем как и ActiveX),, PHP тебе в помощь..
Аватара пользователя
Timofey
Сообщения: 32
Зарегистрирован: 28 апр 2006, 11:42
Откуда: Владивосток
Контактная информация:

Ну, и пускай себе выполняется на клиенте. Клиенты - это мои сотрудники, а я их сисадмин, поэтому как их компы настрою, так они и будут работать. А что JavaScript вообще с файлами не работает? Нельзя осуществить так как я задумал?
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Нет нельзя, максимум кук оставить, более решения нет..
Аватара пользователя
Timofey
Сообщения: 32
Зарегистрирован: 28 апр 2006, 11:42
Откуда: Владивосток
Контактная информация:

И всё-таки я своего добиваюсь!
Если FrontPage не захотел создавать файл, IE и Maxton, после некоторых расспросов, создают, а дальше дело техники!
Может потом я перейду на PHP, но пока JavaScript (я ещё пока чайник ;) .
http://www.codenet.ru/webmast/js/File-Read-Write.php

P.S. в стандартной справке FrontPage тоже описываются объекты и методы работы с дисками, папками и файлами.
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Это ActiveX а не js.. Радоваться нечему, запуск оного обычно подтверждает юзер..
Аватара пользователя
__Yuri__
Сообщения: 140
Зарегистрирован: 02 ноя 2006, 17:17
Контактная информация:

Да, ActiveX FileSystemObject прекрасно работает с текстовыми файлами - я в последнее время пишу конвенторы из формата одной программы обработки данных в другую именно на JavaScript + ActiveX. Минус - работает только под IE, но я применяю HTA (HTML application) - тогда и для пользователя выглядит как обычное приложение и всяких вопросов по безопасности не задает. Разумеется, никакого отношения к HTML серверу данная технология не имеет - юзается файловая система компьютера, на котором запущен скрипт.
Нормальная дока на эту и другие темы, например, Ю. Лукач «Справочник Веб-разработчика»:

3.14.2. Файловая система: объект FileSystemObject

Свойство Drives

Метод BuildPath

Метод CopyFile

Метод CopyFolder

Метод CreateFolder

Метод CreateTextFile

Метод DeleteFile

Метод DeleteFolder

Метод DriveExists

Метод FileExists

Метод FolderExists

Метод GetAbsolutePathName

Метод GetBaseName

Метод GetDrive

Метод GetDriveName

Метод GetExtensionName

Метод GetFile

Метод GetFileName

Метод GetFolder

Метод GetParentFolderName

Метод GetSpecialFolder

Метод GetTempName

Метод MoveFile

Метод MoveFolder

Метод OpenTextFile

Глава 3.15. Исполняющая система JScript (продолжение)

3.15.1. Диски: объект Drive

Свойство AvailableSpace

Свойство DriveLetter

Свойство DriveType

Свойство FileSystem

Свойство FreeSpace

Свойство IsReady

Свойство Path

Свойство RootFolder

Свойство SerialNumber

Свойство ShareName

Свойство TotalSize

Свойство VolumeName

3.15.2. Файлы: объект File

Свойство Attributes

Свойство DateCreated

Свойство DateLastAccessed

Свойство DateLastModified

Свойство Drive

Свойство Name

Свойство ParentFolder

Свойство Path

Свойство ShortName

Свойство ShortPath

Свойство Size

Свойство Type

Метод Copy

Метод Delete

Метод Move

Метод OpenAsTextStream

3.15.3. Папки: объект Folder

Свойство Attributes

Свойство DateCreated

Свойство DateLastAccessed

Свойство DateLastModified

Свойство Drive

Свойство Files

Свойство IsRootFolder

Свойство Name

Свойство ParentFolder

Свойство Path

Свойство ShortName

Свойство ShortPath

Свойство Size

Свойство SubFolders

Свойство Type

Метод Copy

Метод CreateTextFile

Метод Delete

Метод Move

3.15.4. Текстовые файлы: объект TextStream

Свойство AtEndOfLine

Свойство AtEndOfStream

Свойство Column

Свойство Line

Метод Close

Метод Read

Метод ReadAll

Метод ReadLine

Метод Skip

Метод SkipLine

Метод Write

Метод WriteBlankLines

Метод WriteLine
Аватара пользователя
Timofey
Сообщения: 32
Зарегистрирован: 28 апр 2006, 11:42
Откуда: Владивосток
Контактная информация:

__Yuri__, спасибо. Буду пользоваться как справочником :) . Правда я не знаю как применять HTA, но я планирую в дальнейшем перейти на РНР (только будет это не скоро).
Duncon, я конечно не писал прямо, что сотрудники ОБЯЗАНЫ будут создавать по шаблону страницы программ, но вопрос был в другом: "Как создать файл при помощи JavaScript?". Легче и быстрее создавать страницу с дружеским интерфейсом, который направляет строго по шаблону и сохраняет так как мне надо, чем набивать и править в редакторе HTML. Тем более мои сотрудники выравнивают строки в Word'e пробелами ...что уж говорить об Web-страницах. Простой пример:
Надо ввести 15-20 дат в 5-ти месяцах, как проще потыкать на календаре мышкой или ввести вручную каждую дату var zaezd = new Array(new Date(2007,0,14),new Date(2007,4,28),....) ?

Всем спасибо! Тему для себя закрываю.
Ответить