等待ASP.NET中存在文件

时间:2011-10-21 13:50:58

标签: c# javascript asp.net

我有一个ASP.NET页面,用户可以在我们的服务器上触发控制台应用程序,生成一个文件。我想要的是用户看到一条消息,指出“请求文件”,然后一旦文件可用(即文件的File.Exists返回true),请求文件消息将变为链接文件。

在ASP.NET中这很容易实现吗?

4 个答案:

答案 0 :(得分:2)

在您的网页中实现对某个WebMethod的JSON调用,该WebMethod检查是否已生成该文件。

您可以在调用函数中添加消息并在完整事件中清除它,您也可以在其中创建指向该文件的链接

function ddlLeaveChanged(sender, e) {


if (leaveTypeId != '-1' && dateFrom != '' && leaveStatusId != '-1') {
     $('#lblMessage').show();
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        url: WebServiceUrl + 'YourMethod',

        success: FunctionSuccedded,
        error: FunctionFailed
    });
}

function FunctionsSuccedded(result, e) {
if (result) { $('#lblMessage').hide(); }

}

答案 1 :(得分:1)

这可以通过以下方式实现:

可以每x秒(使用setInterval)触发javascript函数,以使用AJAX触发Web方法来检查文件是否存在。

检查我上面提供的链接。这些应该是你需要的所有工作。

答案 2 :(得分:1)

如果你想要一起避免文件系统,你也可以关闭数据库字段,即当点击链接时,会将某个条目放入某种表示文件创建待定的数据库表中,然后定期检查是否状态已更新。服务器端代码将更新相同的密钥并在数据存储区中也有一个URL,因此您只需检查创建的文件的状态和数据存储区的链接。这也会导致您拥有文件创建历史记录,您可以根据需要进行清除,因此从ASP.NET角度来看,您只需依靠数据访问代码来确定您的文件是否已创建。

答案 3 :(得分:0)

ASP.NET与任何其他平台没有太大区别。你可以这样做:

  1. 单击触发链接时进行AJAX调用。
  2. 处理调用的服务器端代码启动外部进程以生成文件,并等待它完成。
  3. 在检查文件确实存在之后,使用有意义的消息回复AJAX调用(即包含足够信息以构建文件链接的消息)。