Zrozumieć sesje... czyli jak użyć sesji?

0

Witajcie dzisiaj ma za zadanie wyświetlić pliki które zostały przesłane w bieżącej sesji.... Totalnie nie mam pojęcia jak to zrobić :/

To fragment kodu dzięki któremu wrzucam pliki do katalogu:

if (przeslanyPlik != null)
{
//wcześniej sprawdzałem rozszerzenie pliku sąd ta mała zawiłość kodu ;)
string sciezka = Server.MapPath("Katalog\\" + nazwaPliku);
przeslanyPlik.SaveAs(sciezka);
}

A ten fragment odpowiada za ich wyświetlenie:

            if (!IsPostBack)
            {
                string[] filePaths = Directory.GetFiles(Server.MapPath("~/Katalog/"));
                List<ListItem> files = new List<ListItem>();
                foreach (string filePath in filePaths)
                {
                    files.Add(new ListItem(Path.GetFileName(filePath), filePath));
                }
                GridView1.DataSource = files;
                GridView1.DataBind();
            }

Pozdrawiam ;)

0

O jaką sesję Ci chodzi? Bo raczej nie o ASP.NET Session... Chodzi Ci o zestaw operacji wykonanych przez użytkownika w aplikacji od momentu zalogowania do wylogowania?

0

Witaj somekind ;) hmm być może masz racje, niestety nie będę błyszczał w tej kwestii... dostałem takie zadanie

Trzecia podstrona powinna zawierać pliki, które zostały przesłane w bieżącej sesji
oraz umożliwić edycję ich nazwy ich usunięcie

Dla sprostowania 1 podstrona miała mieć możliwość wrzucania plików do katalogu - zrobione, 2 podstrona możliwość wyświetlenia plików z tego katalogu i przeprowadzenia na nich operacji - zrobione.

Jak to ugryźć?

0

Czy ktoś wpadł już na pomysł w jaki sposób mogę wyświetlić przesłane pliki do katalogu w bieżącej sesji?

0

Ja trochę postrzelam bo nie jestem pewien:

Czy masz na pewno dostęp do tego serwera? możesz mieć tylko dostęp na wrzucanie, ale czytanie już nie - sprawdź.

w jednym miejscu piszesz:

  Server.MapPath("Katalog\\" + nazwaPliku);

a w drugim:

Directory.GetFiles(Server.MapPath("~/Katalog/")); 

trochę chyba nie podobne ;)

A dodałeś odpowiednie ustawienia do web.configa?

0

Dziękuje za odpowiedz jednak moim problemem są sesje, rozumiem i wiem jak mam wrzucać pliki, wyświetlać czy przeprowadzać na nich operacje ale nie wiem jak wyświetlić tylko te pliki które zostały wrzucone przez użytkownika w bieżącej sesji (obecnie mój skrypt wyświetla wszystkie)

0
d4ng napisał(a):

Dziękuje za odpowiedz jednak moim problemem są sesje, rozumiem i wiem jak mam wrzucać pliki, wyświetlać czy przeprowadzać na nich operacje ale nie wiem jak wyświetlić tylko te pliki które zostały wrzucone przez użytkownika w bieżącej sesji (obecnie mój skrypt wyświetla wszystkie)

Musisz gdzieś zbierać informacje o plikach wrzucanych w czasie trwania tej konkretnej sesji, i tylko te plik wyświetlać. Ewentualnie wyświetlać tylko te, których data utworzenia czy tam modyfikacji jest w między datami rozpoczęcia sesji i chwili wyświetlania.

0
fourfour napisał(a):
d4ng napisał(a):

Dziękuje za odpowiedz jednak moim problemem są sesje, rozumiem i wiem jak mam wrzucać pliki, wyświetlać czy przeprowadzać na nich operacje ale nie wiem jak wyświetlić tylko te pliki które zostały wrzucone przez użytkownika w bieżącej sesji (obecnie mój skrypt wyświetla wszystkie)

Musisz gdzieś zbierać informacje o plikach wrzucanych w czasie trwania tej konkretnej sesji, i tylko te plik wyświetlać. Ewentualnie wyświetlać tylko te, których data utworzenia czy tam modyfikacji jest w między datami rozpoczęcia sesji i chwili wyświetlania.

Ta druga opcja wydaje się być całkiem sensowna.

data_i_czas_start = 23 //czas rozpoczęcia sesji
data_i_czas_koniec = 26 //bieżący czas?

if ((data_i_czas_start < data_plik) || (data_i_czas_koniec > data_plik)){
// wyświetl pliki
}

tylko jak coś takiego zaimplementować tutaj ? żeby wyświetlał nie wszystkie pliki z katalogu ale tylko te z określonego przedziału daty / czasu

if (!IsPostBack)
            {
                string[] filePaths = Directory.GetFiles(Server.MapPath("~/Katalog/"));
                List<ListItem> files = new List<ListItem>();
                foreach (string filePath in filePaths)
                {
                    files.Add(new ListItem(Path.GetFileName(filePath), filePath));
                }
                GridView1.DataSource = files;
                GridView1.DataBind();
            }

1 użytkowników online, w tym zalogowanych: 0, gości: 1