Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [html/js] Czy da się podlinkować zawartość <input type=file>
Forum PHP.pl > Forum > Przedszkole
domel90
Witam Wszystkich.

Mam takie pytanie.
Otóż:

W jedenym ze skryptów swojej aplikacji stworzyłem formularz, za pomocą którego użytkownik wybiera plik i za pomocą przycisku submit, plik przesyłany jest do adresata.

Chciłbym aby przed wysłaniem pliku (pdf), użytkownik miał mozliwośc podglądu tego własńnie pliku (w celu upewnienia się czy oby na pewno odpowiedni plik został wskazany).
Ponieważ po wybraniu pliku w INPUT type="file" pokazuje mi się pełna ścieżka do pliku, zadałem sobie pytanie czy może nie da sie jej wyświetlić jako link otwierający tegoż pdfa w nowym oknie. Obecnie jesli user chce sprawdzić jaki plik dołącza musi przekopiować scieżkę z formularza do paska adresu przeglądarki.

Próbowałem dodać drugi przycisk "Podgląd", ale nie wiem jak, gdyż wcześniej w <FORM ACTION > określiłem już link skryptu, do którego przesyłem dane z formularza.

Z góry wielkie dzięki za wsparcie.
Pozdrawiam
Landon
a może wykorzystaj JS i onclick?
.radex
Nie da się. Wynika to ze sposobu przesyłania danych za pomocą <input type=file>... Gdyby nie było problemów z pseudo-przeglądarkami, a pozostałe byłyby na bierząco ze standardami to na pewno w3c dałby im coś do roboty tongue.gif
lord_t
Ja nie widzę problemu, który by miał stanąć na drodze. Po wybraniu pliku i pokazaniu się już ścieżki, można używając JavaScript utworzyć link,button, co się chce.Tworzymy sobie np. link tylko trzeba jedynie pamiętać, że do pliku na dysku odwołuje się nie przez http:// a przez file:///C:/katalog/farma.jpg .

Pozdro.
Mlodycompany
spróbuj może <a href="link"><input type="text"></a>
lord_t
Cytat(Mlodycompany @ 12.05.2008, 20:51:07 ) *
<a href="link"><input type="text"></a>

Co ma niby z tego wyjść?
batman
To przecież są podstawy JS.
Kod
<input type="file" id="plik" />
<input type="button" value="Podgląd" onclick="showPreview();" />
<script type="text/javascript">
function showPreview() {
    el = document.getElementById("plik");
    alert(el.value);
}
</script>

Nie wiem jak w IE. Nie mam windy postawionej, więc nie sprawdzę.


P.S.
Przenoszę na przedszkole.
sebekzosw
Niech mi ktoś powie mi, jak zrobić, że jak wybiorę plik i kliknę "Podgląd" (u mnie "Dodaj") to żeby to co ma być w alert przeskoczyło do input o nazwie ukryty

  1. <head>
  2. <title>Czy da się podlinkować zawartość <input type=file></title>
  3.  
  4. <script type="text/javascript">
  5. function showPreview() {
  6. el = document.getElementById("plik");
  7. alert(el.value);
  8. }
  9. </script>
  10.  
  11. </head>
  12. <body>
  13. <input type="file" id="plik" />
  14. <input type="hidden" id="ukryty" name="ukryty" />
  15. <input type="button" value="Dodaj" onclick="showPreview();" />
  16. </body>
  17. </html>


Z góry dzięki za pomoc

Pozdrawiam, Sebekzosw
phpion
  1. function showPreview() {
  2. document.getElementById("ukryty").value = document.getElementById("plik").value;
  3. }
batman
Rozumiem, że dział nazywa się przedszkole, rozumiem, że można nie znać js, ale to jest tak podstawowa rzecz, że wypadałoby jej poszukać na google.
Dla potomnych:
Kod
function showPreview() {
    el = document.getElementById("plik");
    document.getElementById("ukryty").value = el.value;
}


Na przyszłość polecam bardzo dobrą dokumentację JS.
domel90
Na Windzie pod IE oraz pod Firefoxem gdy kliknę podgląd, dostaję tylko komunikat z pełną ścieżką do pliku, a nie podgląd dokumentu.

najlepiej jakby zadziałało zamiast alert
window.open(el.value)
-domel90-
Jeśli testowo utworzę link do dysku c

<A HREF="file:///C:/">Dysk C</A>

To mi nie działa, ani pod IE ani pod Firefoxem
lord_t
Pisałeś, że chcesz przeglądać plik, więc podlinkuj plik na dysku a nie 'katalog':)
domel90
<A HREF="file:///C:/test.pdf">test</A>

też nie działa. Uprawnienia dałem full
lord_t
U mnie działa:
Kod
<a href="file:///C:/mksbasel.cpp.log">plik</a>

plik to akurat plik tekstowy na dysku c.
phpion
Cytat(domel90 @ 13.05.2008, 11:37:06 ) *
<A HREF="file:///C:/test.pdf">test</A>

też nie działa. Uprawnienia dałem full



Cytat(lord_t @ 13.05.2008, 16:47:28 ) *
U mnie działa:
Kod
<a href="file:///C:/mksbasel.cpp.log">plik</a>

plik to akurat plik tekstowy na dysku c.

Założę się, że ~domel90 testuje to na serwerze "produkcyjnym", natomiast ~lord_t testuje to na localhoście. Nie można wczytać pliku z dysku klienta. Przecież gdyby to było możliwe to byłaby to bardzo poważna luka w bezpieczeństwie. Możnaby przeglądać pliki z hasłami itp.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.