Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Prośba o pomoc w Skrypcie, Mam male problemy z skryptem do uploadu plikow na FTP
malius
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.10.2009
Skąd: Polska, Wrocław

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


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

Ten post edytował malius 27.10.2009, 23:46:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
shaaaadow
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.01.2008
Skąd: Gniezno

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


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..

Ten post edytował shaaaadow 28.10.2009, 00:11:45
Go to the top of the page
+Quote Post
malius
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.10.2009
Skąd: Polska, Wrocław

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


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





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


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





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.10.2009
Skąd: Polska, Wrocław

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


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 ;(
Go to the top of the page
+Quote Post
InosU31
post
Post #6





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


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





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.10.2009
Skąd: Polska, Wrocław

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


  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>";
Go to the top of the page
+Quote Post
InosU31
post
Post #8





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


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





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.10.2009
Skąd: Polska, Wrocław

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


heeh juz sie miałem wziąśc do testowania a tu mi hosta wyłączyli biggrin.gif
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 Aktualny czas: 19.08.2025 - 20:23