Чтение / запись файлов в JavaScript - PullRequest
0 голосов
/ 08 февраля 2012

Я пытаюсь создать веб-приложение, которое будет читать файл CSV на стороне сервера и отображать его в удобном для просмотра формате.Подвох в том, что я хочу сделать это в голом JS / CSS3 / HTML5. Есть ли способ читать и записывать файлы на стороне сервера с помощью голого JS / CSS3 / HTML5? Я, очевидно, хочу, чтобы это не зависело от ОС / браузера.

Что я пробовал


У меня есть попытка реализовать какой-то код, который я нашел в Интернете (несколько сайтов ссылаются на него).Вот что я попробовал во время тестирования: (я просто хочу, чтобы тест показывал содержимое веб-страницы, само по себе, на веб-странице)

scriptTest.htm:

<html>
<head>
<script type="text/javascript" src="readIt.JS"></script>
</head>
<body>
<button onclick="return readIt();">Show the code of the page</button>
<div id="readItOutput"></div>
</body>
</html>

readIt.JS:

function readIt()
{
    file = fopen(getScriptPath("scriptTest.htm"), 0);
    file_length = flength(file);
    content = fread(file, file_length);
    document.getElementById("readIt").innerText = content;
}

Однако всякий раз, когда я запускаю его, в Opera и Chrome он выдает следующее:

Opera:

Uncaught exception: ReferenceError: Undefined variable: fopen
Error thrown at line 3, column 1 in readIt() in http://s.supuhstar.operaunite.com/s/content/JS/readIt.JS:
    file = fopen(getScriptPath("scriptTest.htm"), 0);
called from line 1, column 0 in <anonymous function>(event) in http://s.supuhstar.operaunite.com/s/content/JS/scripttest.htm:
    return readIt();

Хром:

Uncaught ReferenceError: getScriptPath is not defined
readItreadIt.JS:3
(anonymous function)scripttest.htm:6
onclick

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Если вы хотите редактировать некоторые файлы с сервера, вам нужно использовать объект XHR для загрузки файла на клиентскую сторону и снова использовать объект XHR для отправки измененных данных обратно на сервер, также вам нужен какой-то API на вашем сервере для отправки / получить данные.

1 голос
/ 08 февраля 2012

Запись файла не может быть сделана только с JS / CSS3 / HTML5 по соображениям безопасности, иначе люди могли бы изменить js в FireBug и записать файл. Вам нужно было бы создать какой-нибудь API-интерфейс с использованием JS на стороне сервера или языка, такого как PHP, для обработки прав доступа, имен файлов, расположения файлов и т. Д. *

Что касается чтения, ваш файл должен быть общедоступным, иначе вам понадобится серверный язык, такой как PHP.

...