Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Prośba o pomoc w Skrypcie
Forum PHP.pl > Forum > Przedszkole
malius
Witam mam maly problem z skryptem, przyznam jestem zielony z php kodowania, ale jeste zawzięty i jak cos zaczne chcial bym to skończyć zrobiłem wrzute na podstawie porad z różnych stron i swoich prób i błedów.

Tak wiec prosił bym o kontakt na e-maila a przedstawie swoj problem. A zarys tego co chce osiągnąc to:
1) - Do swojego skryptu dopisac jaki jest maksymalnu rozmiar pliku.
2) - By zmienialo na losowo wybraną nazwe plik podczas wrzucania aby nie dublowaly sie pliki wrzucane na FTP

Cały moj zestaw posiada 4 pliki 1 folder na upload

.htaccess
"DirectoryIndex zapytaj.html"

zapytaj.html
  1. <title>Wybierz ilość plików do wgrania</title>
  2. </head>
  3. <body background="[TŁO_CALEJ_STRONY]">
  4. <body text="white">
  5. <br>
  6. <img src="[LOGO]" alt="[ALTER_LOGO]" />
  7. <br>
  8. <br>
  9. <br>
  10. <font size="4">
  11. <form name="form1" method="post" action="pokarz.php">
  12. Ile plików chciałbyś wgrać? (Max = 9).
  13.  
  14. <input name="ilePlikow" type="text" id=" ilePlikow " maxlength="1" />
  15.  
  16.  
  17. <input type="submit" name="Submit" value="Dalej" />
  18.  
  19. </form>
  20. </font>
  21. </body>
  22. </html>


pokarz.php
  1. <html>
  2. <head>
  3. <title>Wgraj pliki</title>
  4. </head>
  5. <body background="[TŁO_CALEJ_STRONY]">
  6. <body text="white">
  7. <center>
  8. <br>
  9. <img src="[LOGO]" alt="[ALTER_LOGO]" />
  10. <br>
  11. <br>
  12. <br>
  13. <font size="4">
  14. <form name="form1" enctype="multipart/form-data" method="post" action="zaladuj.php">
  15.  
  16. <?
  17. $ilePlikow = $_POST["ilePlikow"];
  18. for($i=0; $i < $ilePlikow; $i++){
  19. ?><br><br>
  20. <input name="plik<? echo $i;?>" type="file" id="plik<? echo $i;?>" />
  21.  
  22. <? } ?><br><br>
  23. <input name="ilePlikow" type="hidden" value="<? echo $ilePlikow;?>" />
  24. <input type="submit" name="Submit" value="Dodaj" />
  25.  
  26. </form>
  27. </font>
  28. </center>
  29. </body>
  30. </html>


zaladuj.php
  1. <html>
  2. <head>
  3. <title>Wgraj pliki</title>
  4. </head>
  5. <body background="[TŁO_CALEJ_STRONY]">
  6. <body text="white">
  7. <center>
  8. <br>
  9. <img src="[LOGO]" alt="[ALTER_LOGO]" />
  10. <br>
  11. <br>
  12. <br>
  13. <font size="4">
  14. <?
  15. // gdzie zostanie umieszczony plik
  16. $sciezka_docelowa = "upload/";
  17. $ilePlikow = $_POST["ilePlikow"];
  18. for($i = 0; $i < $ilePlikow; $i++){
  19. // pobranie nazwy pliku
  20. $nazwa_pliku = $_FILES["plik". $i]["name"];
  21. $nazwa_pliku = stripslashes($nazwa_pliku);
  22. $nazwa_pliku = str_replace("?","",$nazwa_pliku);
  23. // kopiowanie pliku tymczasowego na serwerze do miejsca docelowego
  24. if (copy($_FILES["plik". $i]["tmp_name"], $sciezka_docelowa.$nazwa_pliku)) {
  25. echo "http://www.xxx.xxx.xx/wrzuta/upload/$nazwa_pliku | plik wgrany!<br>";
  26. } else {
  27. echo "$nazwa_pliku | nie można było wgrać pliku!<br>";
  28. }
  29. }
  30.  
  31. ?>
  32. </font>
  33. </center>
  34. </body>
  35. </html>




____________________


Naprawde prosił bym o pomocc

Znalazłem taki o skrypcik

  1. <?php
  2. echo '<?xml version="1.0" encoding="iso-8859-2"?>';
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
  5. transitional.dtd">
  6. <html>
  7. <head>
  8. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  9. <title>Upload</title>
  10. </head>
  11. <body>
  12.  
  13. <div>
  14. <form enctype="multipart/form-data" action="index.php" method="POST">
  15. <input type="hidden" name="MAX_FILE_SIZE" value="50000" />
  16. <input name="plik" type="file" />
  17. <input type="submit" value="Wyślij plik" />
  18. </form>
  19. </div>
  20.  
  21. <?php
  22. $plik_tmp = $_FILES['plik']['tmp_name'];
  23. $plik_nazwa = $_FILES['plik']['name'];
  24. $plik_rozmiar = $_FILES['plik']['size'];
  25.  
  26. if(is_uploaded_file($plik_tmp)) {
  27. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  28. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  29. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  30. }
  31. ?>
  32. </body>
  33. </html>


i on posiada ograniczenie <input type="hidden" name="MAX_FILE_SIZE" value="50000" /> tylko nie wiem czy moge te linijke tak o poprostu dodac w te same miejsce
shaaaadow
Dodaj tę linijkę.. odpowiednio ją zmieniająć w zależności od rozmiarów plików uploadowanych i w <form... dodaj enctype="multipart/form-data"

A żeby sprawdzać czy taki plik istnieje użyj file_exists i jesli ewentualni jest zapisujesz pod inna nazwa..
malius
Dzieki shaaadow ze cos odpisales ale ja mam wiersz enctype="multipart/form-data" w 14 wersie pliku o nazwie pokarz.php, a teraz w 15 wersie dodaje <input type="hidden" name="MAX_FILE_SIZE" value="15728640" /> czyli ograniczenie na 15 Mb

to teraz zostaje mi 2 problem jak zrobic i co mam dopisac by nie dublowaly sie pliki bo aktualnie wgrywając 2 pliki o takiej samej nazwe jeden zastepuje drugim, a tego nie chce :/

bo mam tu 3 wersy dotyczące nazwy i sadze w nich trzeba cos zmodyfikować
  1. $nazwa_pliku = $_FILES["plik". $i]["name"];
  2. $nazwa_pliku = stripslashes($nazwa_pliku);
  3. $nazwa_pliku = str_replace("’","",$nazwa_pliku);


opcjonalnym pomyslem jest by dodawac na koncu nazwy podczas wgrywania numer aktualnej liczby uploadów np.

test_1.gif
logo_2.jpg
avatar_3.gif
...._([numer poprzedniego pliku]+1).jpg
InosU31
ale shaaaadow Ci juz napisal zebys uzyl funkcji : file_exists ;-)

Robisz sobie np taki warunek :

  1. $lokalizacja = "http://www.xxx.xxx.xx/wrzuta/upload/";
  2. $nazwa_pliku = $_FILES["plik". $i]["name"];
  3. $kopia = "kopia_".$_FILES["plik". $i]["name"]
  4. if (!file_exists($lokalizacja.$nazwa_pliku))
  5. {
  6. copy($_FILES['plik']['tmp_name'], $lokalizacja.$nazwa_pliku);
  7. }
  8. else
  9. {
  10. copy($_FILES['plik']['tmp_name'], $lokalizacja.$kopia);
  11. }


i wtedy gdy istnieje taki plik to nie podmieni ci go tylko zapisze jako kopie;-) Nie wiem czy wszystko tu dobrze napisalem ale mniejwiecej jakos tak chyba powinno to wygladac

Pozdrawiam
malius
InosU31 dzia próbowałem juz kilka sposobów jak dodac to co mi napisałes ale wyskakiwaly mi bledy w liniach

  1. <?
  2. // gdzie zostanie umieszczony plik
  3. $sciezka_docelowa = "upload/";
  4. $ilePlikow = $_POST["ilePlikow"];
  5. for($i = 0; $i < $ilePlikow; $i++){
  6. // pobranie nazwy pliku
  7. $nazwa_pliku = $_FILES["plik". $i]["name"];
  8. $nazwa_pliku = stripslashes($nazwa_pliku);
  9. $nazwa_pliku = str_replace("’","",$nazwa_pliku);
  10. // kopiowanie pliku tymczasowego na serwerze do miejsca docelowego
  11. if (copy($_FILES["plik". $i]["tmp_name"], $sciezka_docelowa.$nazwa_pliku)) {
  12. echo "http://www.xxx.xxx.pl/wrzuta/upload/$nazwa_pliku | plik wgrany!<br>";
  13. } else {
  14. echo "$nazwa_pliku | Nie można było wgrać pliku!<br>";
  15. }
  16. }
  17. ?>


To teraz zostaje mi pomoc od kogos kto sie na tym dobrze zna :D. Jak w to cos wsadzić zmienną odpowiadająca za zmiane nazwy :D


Chętnie dał bym wszystkim pomógł ale chyba da sie tylko jednej osobie ;(
InosU31
A jakie bledy Ci wyskakuja questionmark.gif

jesli wyswietlasz kilka input'ow to mysle ze warto zrobic warunek czy ktorys z elementow tej tablicy nie jest pusty, mozeszz takze zrobic czy istnieje (isset) noi czy na dysku juz nie mas ztakiego pliku czyli (if_file_exists):

if (isset($_FILES['plik'.$]) and !empty($_FILES['plik'.$]) )
{
if (file_exists ("sciezka/".$_FILES['plik']['name']))
{
// tutaj reszta twoich dzialan
}
else // tutaj jesli istenie taki plik tworzysz dizalnie ktore ci doda do pliku jakis numerek - np. kolejny ($i++)
}

pozdrawiam
malius
  1. Parse error: syntax error, unexpected ']', expecting T_VARIABLE or '$' in /home/xxx/domains/xxx.hatnet.pl/public_html/wrzuta/zaladuj.php on line 24


24 linijka to "if (isset($_FILES['plik'.$]) and !empty($_FILES['plik'.$]) )"


InosU31 plz naprawde cieżko mi idze z tym ale czy bys mógł ten warunek dodac to mojego skryptu php tak jak należycie powinien być, wiem licze na jakąś łatwizne ale php to dla mnie czarna magie te warunki, stale, zmienne itp.

oczywiście bym byl wdzieczny za pozostawienie mojego warunku na koncu

echo "http://www.xxx.xxx.pl/wrzuta/upload/$nazwa_pliku | plik wgrany!<br>";
} else {
echo "$nazwa_pliku | Nie można było wgrać pliku!<br>";
InosU31
  1. 24 linijka to "if (isset($_FILES['plik'.$]) and !empty($_FILES['plik'.$]) )"


tu same dolary nie moga byc ;-) zamiast $ daj $i

  1. <?
  2. // gdzie zostanie umieszczony plik
  3. $sciezka_docelowa = "upload/";
  4. $ilePlikow = $_POST['ilePlikow'];
  5. for($i = 0; $i < $ilePlikow; $i++){
  6. // pobranie nazwy pliku
  7. $nazwa_pliku = $_FILES['plik'. $i]['name'];
  8. $kopia_pliku = "kopia_".$_FILES['plik'. $i]['name'];
  9. $nazwa_pliku = stripslashes($nazwa_pliku);
  10. $nazwa_pliku = str_replace("’","",$nazwa_pliku);
  11. // kopiowanie pliku tymczasowego na serwerze do miejsca docelowego
  12. if (isset($_FILES['plik'. $i]) and (!empty($_FILES['plik'. $i]))
  13. {
  14. if (!file_exists ($sciezka_docelowa.$_FILES['plik'.$i]['name']))
  15. {
  16. if (copy($_FILES['plik'. $i]['tmp_name'], $sciezka_docelowa.$nazwa_pliku)) {
  17. echo "http://www.xxx.xxx.pl/wrzuta/upload/$nazwa_pliku | plik wgrany!<br>";
  18. } else {
  19. echo "$nazwa_pliku | Nie można było wgrać pliku!<br>";
  20. }
  21. }
  22. else
  23. {
  24. if (copy($_FILES['plik'. $i]['tmp_name'], $sciezka_docelowa.$kopia_pliku)) {
  25. echo "http://www.xxx.xxx.pl/wrzuta/upload/$nazwa_pliku | plik wgrany!<br>";
  26. }
  27. }
  28. }
  29. ?>
  30.  


jutro popatrze na to i potestuje i sie odezwe a puki co zobacz teraz ;-)

Pozdrawiam
malius
heeh juz sie miałem wziąśc do testowania a tu mi hosta wyłączyli biggrin.gif
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.