是否可以判断用户是打开还是下载了文件?

时间:2012-02-27 04:25:42

标签: c# model-view-controller dialog download

我有一个控制器返回

return base.File(filepath, "application/pdf", "filename");

这将创建一个打开/保存对话框。是否可以检测用户是选择保存还是打开?

或者,如果我退回:

return base.File(filepath, "filename");

强制用户从左键单击下载。如果他们右键单击 - >将文件另存为,则可以选择保存。是否有可能检测到打开和保存之间的区别?

2 个答案:

答案 0 :(得分:0)

没有。在获取文件请求后,服务器不会从客户端收到任何信息。您可以使用Fiddler等HTTP监视实用程序进行确认。

答案 1 :(得分:-1)

您可以尝试此方法。这将告诉您文件是否由另一个进程处于打开状态

protected virtual bool IsFileLocked(FileInfo file)
{
    FileStream stream = null;

    try
    {
        stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
    }
    catch (IOException)
    {
        // file is used by another process
        return true;
    }
    finally
    {
        if (stream != null)
            stream.Close();
    }

    //file is not locked
    return false;
}