Szukam sposobu (łatwo, według preferencji;)) utworzyć łącze pobierania do pliku na oddzielnym serwerze plików.Tworzenie linku pobierania do pliku na serwerze plików
Sytuacja wygląda następująco: aplikacja, którą tworzę (asp.net 2.0 w vb.net, ale mam podobny problem w języku C#, oba rozwiązania działają dla mnie) będą działać wewnętrznie dla firmy. Zgodnie z dobrą praktyką przechowywanie plików i aplikacja internetowa znajdują się na dwóch oddzielnych serwerach.
I w zasadzie muszą być w stanie stworzyć link do pobrania w pliku, jedyną dostępną URL mam dostępu do pliku jest \ nazwa_serwera \ folder1 \ folder2 \ folder3 \ plik.txt (może być każdy rodzaj plik)
Weblinks po prostu nie działają. Oto, jak to jest obecnie skonfigurowane:
tablerowfield.Text = String.Format(
"<a href=""\\servername\folder1\folder2\folder3\{0}""
target=""_blank"">Click me</a>",
filename)
Co nie działa z oczywistych powodów. Kiedyś był ustawiony, aby napisać ten plik do samej ścieżki aplikacji i działał idealnie, ale to nie jest dobra praktyka i dlatego zmieniam to (lub próbuję).
Czytam rozwiązania dotyczące tworzenia strony pobierania, a następnie posiadanie tabeli w bazie danych, która przechowuje linki i zwraca prawidłowy adres URL do pobrania, ale ograniczenie czasowe, z którym mam do czynienia niestety nie pozwala mi to rozwinąć.
Zakładając, że mogę podać ciąg z pełną ścieżką do pliku podobnego do powyższego, jaki jest najprostszy sposób, aby utworzyć łącze, które po kliknięciu powoduje pobranie dokumentu?
Uwaga: w tym środowisku mam 0 uprawnień administratora. To naprawdę mi nie pomaga. Załóżmy, że otrzymałem poprawny link jak powyżej i mam odpowiednie prawa dostępu do plików i takie.
UPDATE:
Powyższy przykład działa w IE, ale nie w Firefox i Chrome. IE konwertuje go na plik: // nazwa_serwera/... link, który robi to, co powinien, ale FF i Chrome zarówno aktywnie zdecydowali, że jest to niebezpieczne, jak i wyłączyli je ze swoich przeglądarek.
Ok Mam obsługi działa, ale utrzymuje gving mi błędy w Response.WriteFile. Wprowadzam ciąg znaków "\\ serwer \ folder \ plik.txt" i otrzymuję: Nie udało się zmapować ścieżki "/server/folder/file.txt" Próbowałem każdego możliwego pliku. Jakieś doświadczenie w tej kwestii? – Flater
Możesz przekazać parametr jak file = abc.txt dla pierwszego linku, file = otherfile.txt itp., O czym już wspomniałem. Otrzymasz dynamicznie nazwy plików i przekazujesz je do pliku ASHX. Potrzebujesz pliku ASHX, aby użytkownik mógł go pobrać stamtąd (twoja domena) zamiast używać ścieżki serwera, która nie istnieje po stronie klienta (jeśli nie jest w sieci LAN) – wasimbhalli
Ok ignoruj mój poprzedni wpis Mogę po prostu upuścić serwer .Mappath, a potem działa :) wciąż trochę niewyraźnie na sfinalizowanie tego, ale pomógł mi strasznie dużo! Dzięki! – Flater