预定义文件上传到 Web 应用程序(通过 HTML 或不同的解决方案)

Predefined files upload to web application (by HTML or different solution)

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

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

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

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

有没有人看到其他值得一试的解决方案?

您可以考虑使用 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 创建可信应用程序的更多信息。

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

在 QA 的第一次测试之后,我不得不说 WebDAV 解决方案工作正常。也许客户端的脚本不是最好的优雅解决方案,但它可以正常工作(在客户端 运行 之后,脚本 he/she 可以在浏览器上观察状态)。

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

我希望这个回答对以后的人有所帮助 ;)