domel90
12.05.2008, 11:30:52
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
12.05.2008, 16:02:21
a może wykorzystaj JS i onclick?
.radex
12.05.2008, 16:07:30
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
lord_t
12.05.2008, 18:26:13
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
12.05.2008, 19:51:07
spróbuj może <a href="link"><input type="text"></a>
lord_t
12.05.2008, 20:00:36
Cytat(Mlodycompany @ 12.05.2008, 20:51:07 )

<a href="link"><input type="text"></a>
Co ma niby z tego wyjść?
batman
12.05.2008, 20:08:42
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
12.05.2008, 20:28:41
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
<script type="text/javascript"> function showPreview() {
el = document.getElementById("plik");
alert(el.value);
}
<input type="file" id="plik" /> <input type="hidden" id="ukryty" name="ukryty" /> <input type="button" value="Dodaj" onclick="showPreview();" />
Z góry dzięki za pomoc
Pozdrawiam, Sebekzosw
phpion
12.05.2008, 20:30:41
function showPreview() {
document.getElementById("ukryty").value = document.getElementById("plik").value;
}
batman
12.05.2008, 20:30:54
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
12.05.2008, 20:56:52
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-
13.05.2008, 08:30:09
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
13.05.2008, 08:38:39
Pisałeś, że chcesz przeglądać plik, więc podlinkuj plik na dysku a nie 'katalog':)
domel90
13.05.2008, 10:37:06
<A HREF="file:///C:/test.pdf">test</A>
też nie działa. Uprawnienia dałem full
lord_t
13.05.2008, 15:47:28
U mnie działa:
Kod
<a href="file:///C:/mksbasel.cpp.log">plik</a>
plik to akurat plik tekstowy na dysku c.
phpion
13.05.2008, 17:27:31
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.