Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak odtworzyć zawartość pola <input type="file">, Przy ponownym wyświetleniu formularza
Przemek1
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.11.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




1) bylo juz o tym wiele razy. nie da się ze względu na bezpieczenstwo
Go to the top of the page
+Quote Post
Seth
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Przemek1
post
Post #4





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.11.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Radarek
post
Post #5





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

Ostrzeżenie: (0%)
-----


Mozesz jeszcze dodac kod w js sprawdzajacy czy wszystkie pola formularza (np. opis obrazka) sa wypelnione.
Go to the top of the page
+Quote Post
anopak
post
Post #6





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.10.2004
Skąd: Rybnik

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
Seth
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

Ostrzeżenie: (0%)
-----


Nie wiedzialem. Dzieki za infromacje.

A czy ktos probowal zrobic to za pomoca flasha ?
Go to the top of the page
+Quote Post
podziak
post
Post #8





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 10.09.2005

Ostrzeżenie: (20%)
X----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 11:23