0

我正在创建一个简单的网站,允许用户从服务器端下载一些文件。这些文件不会预先创建。也就是html页面上会有一个按钮。当用户单击该按钮时,页面将要求服务器从另一台服务器获取这些文件并将其压缩给用户。

目前我正在使用jquery。我创建了一个弹出对话框表单,其中有一个下载按钮:

$("#dialog-form").dialog({
    autoOpen: false,
    height: 300,
    width: 350,
    modal: true,
    buttons: {
        "Download": function() {},
        close: function() {}
    }
});

当用户点击下载按钮时,用户需要等待服务器生成文件(即阻塞调用)。

我对网络开发非常陌生。有谁可以帮我离开这里吗?

谢谢!

4

3 回答 3

1

如果您只想提供一个文件,您可以简单地在下载按钮中提供文件的位置,例如

$("#dialog-form").dialog({
    autoOpen: false,
    height: 300,
    width: 350,
    modal: true,
    buttons: {
        "Download": function() {window.location='{your file location}'},
        close: function() {}
    }
});

如果您想提供 zip 格式,则需要使用一些服务器端插件将其转换为 zip。

于 2013-01-08T20:27:56.957 回答
0

您需要某种服务器端功能来处理该部分。客户端代码(JavaScript + jQuery)与服务器端代码断开连接。它发起一个请求,但服务器端代码完全在它自己的应用程序上下文中运行以处理请求。

有许多服务器端平台可供选择:

  • ASP.NET
  • PHP
  • 红宝石
  • 爪哇
  • Python
  • 节点.js
  • 等等

除此之外,每个平台都有各种可以帮助项目的框架。

一些初步考虑包括:

  • 您将在哪里托管它以及那里有什么可用的?
  • 您最熟悉的其他编程语言是什么?
于 2013-01-08T20:25:17.600 回答
0

如前所述,您需要实现一些服务器端功能。一个可能的解决方案可能是一些这样的 PHP 脚本,例如:

<?php
// Code to create the file, I assume it will be an PNG image
$tempFilename = "your_file_name.png";

// The following two lines are important to turn the response into 
// a file download

header('Content-Type: image/png');
header('Content-Disposition: attachment; filename="' . $tempFilename . '"');

// this actually sends the file to the client, there are other
// ways to do this
readfile($tempFilename);
?>

然后,您需要有一些支持 PHP 的服务器,例如 Apache,将 PHP 脚本放置在某处并使其可以通过 URL 访问。

当然,您可以使用您可能想要使用的其他服务器端技术来执行此操作。代码会有所不同,但原理是一样的。

于 2013-01-08T21:06:36.410 回答