Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][html] Skrypt zapisujący obrazek w odpowiednim folderze na serwerze
Forum PHP.pl > Forum > Przedszkole
puz219
Witam.

Chciałbym zrobić formularz, który zapisywałby wybrany plik na serwerze w odpowiednim katalogu i zmieniał mu nazwę. Czy da się coś takiego zrobić. Jeśli tak to proszę o jakieś wskazówki.

Z góry dzięki za pomoc.
atomek4
Hej,
da się jak najbardziej, czytałeś już manuala?
puz219
Prawdę mówiąc, to patrząc na tego mauala, to niewiele z niego rozumie. Jestem jeszcze początkującym programista w php (o ile w ogóle mogę siebie nazywać "programistą").

Gdybyś mógł podać mi jakieś szczegółowe komendy, byłbym bardzo wdzięczny
atomek4
W manualu są już gotowe fragmenty, które w zasadzie trzeba tylko skopiować do swojego skryptu, dlatego podałem.

Poza tym kolega Grzyw podrzucił ci coś może lepiej opisanego.
gregi1
Nie bardzo wiem po co stosowac funkcje copy przy formularzu?questionmark.gif Raczej jest ona wykorzystywana przy kopiowaniu z serwera na serwer.

Do upload'owania pliko z formularza wykorzystywana jest funkcja
move_uploaded_file()

A wiec najprostrza wersja przesylania z formularza:

formularz.html
Kod
<form action="formularz.php" enctype="multipart/form-data"> //pamietaj o tym ze musi byc takie enctype inaczej nie zadziala!!!!

<input type="file" name="plik">
<input type="submit" value="Wyślij">
</form>


formularz.php
Kod
$nazwa=$_FILES['plik']['name'];
$tmp = $_FILES['plik']['tmp_name'];

move_uploaded_file($tmp,"katalog/$nazwa");

//gdzie pierwszy parametr to nazwa pliku (tymczasowa- poczytaj manuala na php.net do tej funkcji i tablicy $_FILES, to dowiesz sie dlaczego jest nazwa tymczasowa) a drugi parametr to sciezka gdzie katalogiem domowym jest katalog w ktorym sa te pliki)


Nie dodalem jesli chcesz miec inna nazwe pliku to zmien sobie $nazwa na cos innego tylko moze w jakiejs petli aby dodawalo Ci np numer do nazwy. Bo w takim opisie jak ja podalem to zapisze z taka nazwa jak mial uzytkownik na kompie.
Jak doczytasz sie w manualu to funkcja move_uploaded_file() pliki o takiej samej nazwie nadpisuje. Wiec jesli bedziesz zmienial nazwe to wymysl cos aby Ci jakos dynamicznie zmienialo ta nazwe.
I jeszcze jedna rzecz kod ktory podalem jest najprostrzym kodem do upload'u mozesz sobie uzyc jakiegos if do sprawdzania czy plik zostal upload'owany, albo jak sie doczytasz w manualu tablica $_FILES jest zawsze dwu wymiarowa i oprocz name, tmp_name ma jeszcze kilka parametrow, np size, type wiec mozesz sobie dorobic sprawdzanie czy plik jest odpowiedniego typu ma odpowiedni rozmiar itd....
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.