Zwracam kontroler

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

Tworzy to okno dialogowe do otwierania/zapisywania. Czy można wykryć, czy użytkownik wybiera zapisywanie czy otwieranie?

Ewentualnie, jeśli zwrócę to:

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

Zmusza użytkownika do pobrania z lewego przycisku myszy. Jeśli klikną prawym przyciskiem myszy->Zapisz plik jako, mają możliwość zapisania. Czy można tu wykryć różnicę między otwieraniem a zapisywaniem?

0
getit 27 luty 2012, 08:25

2 odpowiedzi

Najlepsza odpowiedź

Nie. Serwer nie otrzymuje żadnych informacji od klienta po żądaniu pobrania pliku. Możesz to potwierdzić za pomocą narzędzia do zegarka HTTP, takiego jak Skrzypek.

0
Alexei Levenkov 27 luty 2012, 10:34

Możesz wypróbować tę metodę. Dzięki temu dowiesz się, czy Twój plik jest otwarty przez inny proces, czy nie

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;
}
-1
Pritam Karmakar 27 luty 2012, 10:19