Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]$_FILES['plik']['tmp_name']
Forum PHP.pl > Forum > Przedszkole
fate
Czy można w PHP zrobić ażeby ścieżka pliku została uzupełniona ponownie w Inpucie File na tą samą którą już user wybrał jeżeli z powodu niespełnienia innego warunku skrypt wróci na początek? Wiem że ścieżka tego pliku zapisuje mi się w $_FILES['plik']['tmp_name'] Naskrobałem takie coś w value ale widocznie to nieodpowiednie rozwiązanie dla inputa typu file bo pole wyboru jest mimo to puste, może ktoś mądry wie gdzie podać tą zmienną i jak bom może niedoinformowany nerdsmiley.png

  1. <input class="input" name="plik" type="file" value="<? if (!empty($_FILES['plik']["tmp_name"])) {echo $_FILES['plik']["tmp_name"];} ?>" />


Możliwe jest uzupełnienie inputa file treścią stringa? jakiś inny sposób? ajax? goatee.gif
jaslanin
nie możesz tego zrobić, ze względów bezpieczeństwa. Jakby było to dozwolone czarne charaktery stosunkowo łatwo mogły by pobrać dowolny plik którego lokację by znały z Twojego komputera. Np. historię przeglądanych stron, hasła przeglądarki itp itd. jeżeli znajdują się w domyślnych lokalizacjach

Zamiast tego możesz zapisywać plik mimo iż pozostała część formularza nie przeszła. Adres przekazujesz po raz drugi np. poprzez ukryte pole tekstowe przechowujące jego tymczasowy adres. Dodatkowo userowi dobrze jest wyświetlić nazwę pliku / obrazek by wiedział że transfer pliku się powiódł. Jak user wybierze inny to go kasujesz, dodatkowo co jakiś czas czyścisz ten tymczasowy folder z przerwanych operacji.
fate
Powinienem sobie poradzić, dzięki spróbuję bo dla mnie to istotna sprawa. aaevil.gif
Nie zwróciłem uwagi na dokładną ścieżkę zwracanego pliku ale sądząc po przedrostku tmp nie jest to pewnie prawdziwa ścieżka i wszystko jasne.
+

Dodam dla potomnych ciekawe rozwiązanie po stronie przeglądarki bynajmniej Mozilla 12 mi tak robi (IE8 już nie) że plik nie zostaje nawet wysłany więc pole wyboru pliku pozostaje uzupełnione - wystarczy dodać do inputa parametr required="required"
Podsumowując po przeładowaniu się nie da a zanim się wyśle pewnie i są inne sposoby JS/AJAX headsetsmiley.png
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.