Можно ли определить, открыл ли пользователь файл или скачал его? - PullRequest
0 голосов
/ 27 февраля 2012

У меня есть контроллер, возвращающий

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

Это создает диалог для открытия / сохранения. Можно ли определить, выбрал ли пользователь сохранение или открытие?

В качестве альтернативы, если я верну это:

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

Вынуждает пользователя скачивать с левого клика. Если они щелкните правой кнопкой мыши -> Сохранить файл как, тогда у них есть возможность сохранить. Можно ли обнаружить разницу между открытием и сохранением здесь?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

Нет.Сервер не получает никакой информации от клиента после запроса на получение файла.Вы можете подтвердить это с помощью утилиты наблюдения HTTP, например Fiddler .

0 голосов
/ 27 февраля 2012

Вы можете попробовать этот метод.Это скажет вам, находится ли ваш файл в открытом состоянии другим процессом или нет

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...