Редактировать файл на сервере с веб-страницы

1

Я хочу сделать, чтобы на моем веб-сайте был установлен набор редактируемых файлов Excel:

  • Я даю ссылки на то, что для пользователя представляет файл Excel
  • С помощью щелчка, пользовательская программа по умолчанию для редактирования файлов Excel (скажем, MS Excel) должна открыться
  • После завершения редактирования файл должен быть загружен на мой сервер прозрачно для пользователя, и в следующий раз, когда пользователь посещает мою страницу, они должны увидеть их отредактированный файл и иметь возможность редактировать его снова

То, что я рассмотрел:

  • JavaScript-подобная сетка. Тем не менее, я не нашел библиотеку JavaScript с достаточными функциями, например, легко перемещающиеся строки (любые рекомендации хорошего компонента JavaScript Excel)?
  • Сохранение в DropBox/Документы Google/... с использованием их API. Однако для этого требуется, чтобы пользователь имел учетную запись, и, вероятно, мне потребуется управлять паролями пользователей DropBox (и не все пользователи захотят поделиться паролями со мной). Кроме того, мне нужно будет иметь интерфейсы с Google Диском, Miscrosoft OneDrive и кто знает, сколько других сервисов.
  • Разрешить пользователю загружать файл и полагаться на пользователя, чтобы загрузить его снова. Однако это слишком сложно для пользователя, и пользователи забудут загрузить файлы, а это значит, что они теряют свои права. В любом случае или автоматически загружать файл после закрытия?
  • Макрос в моих файлах Excel, которые будут обращаться к моему серверу перед выходом. Однако для этого требуется, чтобы пользователь включил макросы (аварийный сигнал безопасности) и может быть ненадежным, если соединение ломается. Я не оценил, насколько это технически возможно.

Или какой лучший/самый простой способ достичь этого?

(Я знаю, как генерировать файлы Excel и как их открывать с веб-страницы, моя проблема заключается в том, как получить права пользователя на сервер прозрачно для пользователя.)

  • 0
    «Разрешить пользователю загружать файл и полагаться на него, чтобы загрузить его снова. Однако это слишком сложно для пользователя, и пользователи забудут загрузить файлы, что означает потерю их правок. Любой способ или загрузка файл автоматически при закрытии? " Почему выбор сохранения документа будет «сложным»? Загружать файл, когда пользователь выбирает сохранить файл? или пользователь "закрывает" какую часть документа?
  • 0
    "Загрузить файл, когда пользователь выберет сохранить файл?" - Вы имеете в виду загрузить его на сервер из сценария VBA в файле Excel?
Показать ещё 12 комментариев
Теги:
server
client-server

1 ответ

0

Я думаю, что самый простой способ сделать это ("заставить пользователя редактировать сервер обратно прозрачно для пользователя") - использовать запросы AJAX (JS) для PHP-скриптов.

AJAX отлично подходит для работы в фоновом режиме (асинхронно), но он не может редактировать сервер. Просто добавьте прослушиватель событий в JS (возможно, onchange или onblur) и отправьте запрос AJAX каждый раз, когда пользователь редактирует файл.

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


EDIT: Пример (по запросу)

Предполагая, что файл Excel хранится в строке в <textarea> для простоты (пока), вы можете установить прослушиватель для получения данных из него (в jQuery) и отправить запрос AJAX:

HTML:

<textarea id="excel"></textarea>

JS:

$("#excel").change(function() {
    var excelFile = $(this).val();
    $.ajax({
        url: "updateFile.php",
        method: "post",
        data: { data: excelFile }
    });
});

PHP (updateFile.php):

<?php
    $data = $_POST["data"];
    $file = fopen("FILENAME.xlsx", "w+");
    fwrite($file, $data);
    fclose($file);
?>
  • 0
    Спасибо! Не могли бы вы дать более подробную информацию? Я знаю, как использовать Ajax. Если пользователь использует MS Excel на клиенте, как мой сценарий узнает, когда он закончит редактирование и как он получит отредактированный файл? Если пользователь редактирует файл в браузере, то можете ли вы посоветовать достаточно хороший компонент JavaScript, который позволил бы, скажем, перемещать строки?
  • 0
    @AlexanderGelbukh Я приведу пример сразу, не волнуйтесь!
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню