Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak odtworzyć zawartość pola <input type="file">, Przy ponownym wyświetleniu formularza
Przemek1
post 20.02.2006, 12:07:23
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 20.02.2006, 12:12:00
Post #2





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




1) bylo juz o tym wiele razy. nie da się ze względu na bezpieczenstwo


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Seth
post 20.02.2006, 12:13:09
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 20.02.2006, 12:25:23
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 20.02.2006, 15:58:28
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 21.02.2006, 08:48:40
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...


--------------------
Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox
Go to the top of the page
+Quote Post
Seth
post 21.02.2006, 11:13:46
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 21.02.2006, 17:52:13
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:22