【问题标题】:Predefined files upload to web application (by HTML or different solution)预定义文件上传到 Web 应用程序(通过 HTML 或不同的解决方案)
【发布时间】:2015-09-25 02:59:02
【问题描述】:

在我们公司,我们在 Web 应用程序中提供解决方案,客户在 Web 应用程序上可以预定义磁盘上文件的路径(即:c:/invoices/summary.txt)。

之后,通过 Java Applet,我们正在读取 Web 应用程序定义路径下的文件并修改用户磁盘上的文件。

是的 - 问题出现了 - Java Applet。 Chrome 不再支持它,它是一个遗留/不安全的解决方案。我们正在寻找此解决方案的替代品,它允许我们修改用户磁盘上的文件并支持不同的浏览器/操作系统。

我们考虑了以下解决方案:

  • 操作系统专用的外部应用程序会将定义的文件上传到我们的系统(如 Dropbox),但问题是我们必须为各种操作系统开发应用程序并支持它 - 大量工作
  • WebDav API 和解决方案,客户从 Web 应用程序下载脚本并运行它,脚本将文件上传到服务器 - 问题是脚本可能容易出错
  • HTML 5 解决方案 - 我们考虑过,但我们希望实现用户只定义一次路径的情况

对于这个案例,有没有人认为值得尝试的其他明智的解决方案?

【问题讨论】:

    标签: java html web applet webdav


    【解决方案1】:

    您可以考虑使用 Microsoft Silverlight 代替 Java 小程序。它具有对本地文件系统的读写访问权限(仅限受信任的文件系统)。您可以在 Visual Studio 中创建 silverlight 应用程序,该应用程序既可以作为本地应用程序运行,也可以作为 Web 小程序运行。

    C# (Silverlight 4) 中写入文件的简单代码是

    public void WriteFile(object sender, RoutedEventArgs event) {
        string path = System.IO.Path.Combine(Environment.GetFolerPath(Environment.SpecialFolder.MyDocuments), "TextFile.txt");
    
        /// or
    
        string other_path = "C:/invoices/summary.txt";
    
        StreamWriter writer;
        if (!File.Exists(path))
            writer = File.CreateText(path);
    
        writer.Write("Some text to write");
        writer.Close();
    }
    

    您可以阅读有关使用 silverlight 创建可信应用程序的更多信息。

    【讨论】:

      【解决方案2】:

      我会尝试回答我自己的问题。最后,作为一个团队,我们决定使用WebDAV HTTP 协议扩展。我们希望避免为各种系统开发单独的应用程序(成本),我们需要可以快速替换 Java Applet 的解决方案。

      在对 QA 进行第一次测试后,我不得不说 WebDAV 解决方案工作正常。也许客户端的脚本不是一个最好的优雅解决方案,但它没有更大的问题(客户端运行脚本后,他/她可以观察浏览器上的状态)。

      我还建议任何需要单独应用程序的人都可以考虑使用 Dropbox API,它允许在 Dropbox 目录中写入/读取文件。 Dropbox 团队将解决维护单独应用程序的问题 :) 不幸的是,由于我们的业务领域,我们无法做到这一点,但它看起来也是处理问题的有趣方式。

      我希望这个答案将来对某人有所帮助;)

      【讨论】:

        猜你喜欢
        • 2010-11-25
        • 1970-01-01
        • 2021-09-13
        • 2013-03-26
        • 1970-01-01
        • 2011-06-24
        • 2011-11-21
        • 2016-01-13
        • 1970-01-01
        相关资源
        最近更新 更多