Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak odtworzyć zawartość pola <input type="file">
Forum PHP.pl > Forum > Przedszkole
Przemek1
1. Chodzi o formularz, który służy do przesyłania obrazka na serwer. Kod, który odbiera dane z formularza sprawdza, czy wszystko gra, a jeśli np. brakuje opisu, to ponownie wyświetla formularz z prośbą o uzupełnienie.
Jak spowodować, żeby pole <input type="file"> było już wypełnione, w sytuacji, gdy użytkownik już wcześniej wybrał ścieżkę do pliku? Próbowałem:
  1. <?php
  2. <input name="plik" type="file" value="$_FILES['plik']['name']">
  3. ?>

Ale niestety bez efektu - pole pozostawało puste. Nie udaje w ogóle przypisanie żadnej wartości do value (np. value='aaa').
Jak to zrobić?

2. Przy okazji - czy jest jakaś funkcja php zamieniająca dowolną nazwę pliku na "bezpieczną" dla URL? Chodzi mi o automatyczne usunięcie polskich znaków, spacji itd.

Będę bardzo wdzięczny za jakieś wskazówki.
Pozdrawiam!
Przemek
nospor
1) bylo juz o tym wiele razy. nie da się ze względu na bezpieczenstwo
Seth
Nie mozna NIC przypisac do tego pola - kwestia bezpieczenstwa uzytkownika.

Wzasadzie sa dwa rozwiazania:

1) Uzyc JavaScript do tego aby wyswietlil informacje o brakujacych danych.

2) Po wybraniu juz przez uzytkownika jakiegos pliku, zaczac sciagac go w tle za pomoca JavaScriptu (tzn. uzyc Ajaxa do tego aby wyslal formularz z tym plikiem bez odswiezania strony) - pozniej mozna zamienic to pole na inne z juz podana nazwa pliku (takie rozwiazanie oferuje GMail).

Obie rzeczy wymagaja wlaczonego JavaScript, wiec jest to malo niezawodne.
Przemek1
Dzięki za ekspresową odpowiedź.
Nie pomyślałem wcześniej o bezpieczeństwie - w ten sposób można by rzeczywiście wyciągnąć komuś z kompa dowolny plik.
Wymyśliłem takie rozwiązanie, że jeśli przy pierwszym podejściu będzie wybrany plik, to zostanie on odebrany i przetworzony, a formularz do uzupełnienia danych nie będzie już zawierał pola wyboru pliku. Jak ktoś nie uzupełni opisu, to się plik skasuje i sytuacja będzie czysta. Tak powinno być dobrze.
Dzięki!
Przemek
Radarek
Mozesz jeszcze dodac kod w js sprawdzajacy czy wszystkie pola formularza (np. opis obrazka) sa wypelnione.
anopak
Cytat(Seth @ 2006-02-20 11:13:09)
2) Po wybraniu juz przez uzytkownika jakiegos pliku, zaczac sciagac go w tle za pomoca JavaScriptu (tzn. uzyc Ajaxa do tego aby wyslal formularz z tym plikiem bez odswiezania strony) - pozniej mozna zamienic to pole na inne z juz podana nazwa pliku (takie rozwiazanie oferuje GMail).

AJAX nie wyśle Ci pliku... Taką funkcjonalność oferuje jedynie FireFox, a nIEdźwiedź już sobie z tym nie poradzi... wysłać plik w tle można jedynie poprzez iframe...
Seth
Nie wiedzialem. Dzieki za infromacje.

A czy ktos probowal zrobic to za pomoca flasha ?
podziak
kiedys robilem kod do aktualizacji zdjec i rozwiazalem to w ten sposob ze jesli pole pliku bylo puste to przepisywalo mi stara wartosc a jesli bylo wypelnione to byl wykonywany odpowiedni kod
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.