繁体   English   中英

在网页上编辑服务器上的文件

[英]Edit file on server from a webpage

我想要做的是在我的网页上拥有一组可编辑的Excel文件:

  • 我提供指向用户代表Excel文件的链接
  • 只需单击一下,即可打开用户用于编辑Excel文件的默认程序(例如,MS Excel)
  • 完成编辑后,该文件应该对用户透明地上传到我的服务器,并且下次用户访问我的页面时,他们应该看到其编辑后的文件并能够再次对其进行编辑

我考虑过的:

  • 类似于JavaScript Excel的网格。 但是,我没有找到具有足够功能的JavaScript库,例如轻松移动行(关于JavaScript Excel组件良好的建议吗?)
  • 使用其API保存到DropBox / Google文档/...。 但是,它要求用户拥有一个帐户,并且可能需要我来管理用户的DropBox密码(并非所有用户都希望与我共享密码)。 另外,我需要与Google云端硬盘,Miscrosoft OneDrive以及其他知道多少其他服务的接口。
  • 允许用户下载文件并依靠用户再次将其上传回。 但是,这对于用户来说太复杂了,用户将忘记上载文件,这意味着丢失其编辑。 有什么办法或在关闭时自动上传文件吗?
  • Excel文件中的一个宏,该宏在退出前将与我的服务器联系。 但是,这要求用户启用宏(安全警报),并且如果连接中断可能不可靠。 我没有评估这在技术上是否可行。

或实现这一目标的最佳/最简单方法是什么?

(我知道如何生成Excel文件以及如何从网页中打开它们;我的问题是如何使用户的编辑对用户透明地返回到服务器。)

我认为最简单的方法(“将用户的编辑透明地返回给用户”)是对PHP脚本使用AJAX(JS)请求。

AJAX非常适合在后台(异步)执行操作,但是它不能编辑服务器。 只需在JS中添加事件侦听器(也许是onchangeonblur ),并在用户每次编辑文件时发送AJAX请求。

PHP是一种很棒的服务器端脚本语言,您可以使用它来编辑文件。


编辑 :示例(应要求)

为简单起见,假设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);
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM