Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]upload obrazkow - 3 pytania, wielkosc pliku, wyswietlanie plikow, chmody
Matiash
post 12.06.2007, 23:55:37
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


witam otoz korzystam z takiego uploadu:
http://minigra.ovh.org/example1.html ( chodzi o sam upload )

moj kod php jest taki:
  1. <?php
  2.  
  3. $currentdir=getcwd();
  4.  
  5. $currentdir= "./pliki/".date('dmyHis')."/";
  6. mkdir($currentdir ,0777);//tworzymy katalog
  7. $plik=fopen($currentdir."opis.txt","w+");
  8. fputs($plik,"Imię i nazwisko:".chr(10).$_POST['imie'].chr(10).chr(10)."Adres email:".chr(10).$_POST['email'].chr(10).chr(10)."Kategoria:".chr(10).$_POST['kategoria'].chr(10).chr(10)."Tytuł:".chr(10).$_POST['tytul'].chr(10).chr(10)."Treść wiadomości:".chr(10).$_POST['tresc'].chr(10).chr(10)."Dodano: ".chr(10).date("d F Y, H:i"));
  9. fclose($plik); 
  10. echo "Dziękujemy za przesłanie relacji. Do 24 h powinna ukazać się na stronie.<br /><br />";
  11.  
  12. foreach($_FILES as $file)
  13. {
  14.  
  15. $wynik = strtr($file['name'], 'ĘÓĄŚŁŻŹŃęóąśłżźćń ', 'EOASLZZCNeoaslzzcn_');
  16. move_uploaded_file($file['tmp_name'],$currentdir.$wynik);
  17. }
  18. chmod($currentdir.$wynik, 0644);
  19. echo "<img src=".$currentdir.$wynik.">";
  20.  
  21. ?>


1. Czy ktos moglby mi pomoc zrobic tak aby maks file size nie przekraczalo 200 kb

2. Nie wiem dlaczego ale jak wgrywam np 10 zdjec, to chmod 644 ustawia mi sie tylko do ostatniego pliku reszta ma 600 a ja chcialbym miec do wszystkich 644

3. Po wgraniu plikow mam tak zrobione ze wyswietlaja mi sie wszystkie wgrane pliki, jednak tak nie jest bo wyswietla sie ostatni ze wszystkich wgranych plikow, co jest przyczyna ?

Dziekuje za odpowiedzi i Pozdrawiam.


aha moze wgrac jakiees wlasne pliki i zobaczycie ze tylko jedno zdjecie sie pokazuje po wgraniu ( ja u siebie na serwerze mam je wszystkei wgrane ale coz kiedy tylko ostatnie sie wyswietla ) W pola oznaczone gwiazdkami Wpiszcie obojetnie co.

Ten post edytował Matiash 12.06.2007, 23:53:15


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
Void
post 13.06.2007, 06:44:47
Post #2





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

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


Ad 1. Przy wysyłaniu pliku, w pętli foreach dodaj warunek sprawdzający rozmiar pliku, pobrany z tablicy $_FILES.
  1. <?php
  2. if ($file['size'] < 204800) { // rozmiar podaje się w bajtach, 204800 B = 200 KB
  3.  
  4. if ( move_uploaded_file($file['tmp_name'],$currentdir.$wynik) ) {
  5. echo 'plik został umieszczony na serwerze';
  6. } else {
  7. echo 'błąd podczas wysyłania pliku';
  8. }
  9.  
  10. } else {
  11. echo 'zbyt duży rozmiar pliku';
  12. }
  13. ?>


Ad 2,3. Po prostu za wcześnie zamknąłeś pętle foreach, uprawnienia zmieniane są ostatniemu plikowi, tak samo ostatnie zdjęcie zostaje wyświetlane. Powinno być

  1. <?php
  2. foreach($_FILES as $file) {
  3.  
  4. $wynik = strtr($file['name'], 'ĘÓĄŚŁŻŹŃęóąśłżźćń ', 'EOASLZZCNeoaslzzcn_');
  5.  
  6. if ($file['size'] < 204800) { // rozmiar podaje się w bajtach, 204800 B = 200 KB
  7. if ( move_uploaded_file($file['tmp_name'],$currentdir.$wynik) ) {
  8. echo 'plik został umieszczony na serwerze';
  9. } else {
  10. echo 'błąd podczas wysyłania pliku';
  11. }
  12. } else {
  13. echo 'zbyt duży rozmiar pliku';
  14. }
  15.  
  16. chmod($currentdir.$wynik, 0644);
  17. echo '<img src="'.$currentdir.$wynik.'">';
  18.  
  19. }
  20. ?>
Go to the top of the page
+Quote Post
Matiash
post 13.06.2007, 10:53:21
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


Dzieki Void, Twoj skrypt działa jednak po zdefiniowaniu $currentdir - wyskakkuja mi bledy.

  1. <?php
  2. $currentdir=getcwd();
  3.  
  4. $currentdir= "./pliki/".date('dmyHis')."/";
  5. mkdir($currentdir ,0777);//tworzymy katalog
  6. $plik=fopen($currentdir."opis.txt","w+");
  7. fputs($plik,"Imię i nazwisko:".chr(10).$_POST['imie'].chr(10).chr(10)."Adres email:".chr(10).$_POST['email'].chr(10).chr(10)."Kategoria:".chr(10).$_POST['kategoria'].chr(10).chr(10)."Tytuł:".chr(10).$_POST['tytul'].chr(10).chr(10)."Treść wiadomości:".chr(10).$_POST['tresc'].chr(10).chr(10)."Dodano: ".chr(10).date("d F Y, H:i"));
  8. fclose($plik); 
  9. echo "Dziękujemy za przesłanie relacji. Do 24 h powinna ukazać się na stronie.<br /><br />";
  10.  
  11. foreach($_FILES as $file) {
  12.  
  13. $wynik = strtr($file['name'], 'ĘÓĄŚŁŻŹŃęóąśłżźćń ', 'EOASLZZCNeoaslzzcn_');
  14.  
  15. if ($file['size'] < 204800) { // rozmiar podaje się w bajtach, 204800 B = 200 KB
  16. if ( move_uploaded_file($file['tmp_name'],$currentdir.$wynik) ) {
  17. echo 'plik został umieszczony na serwerze';
  18. } else {
  19. echo 'błąd podczas wysyłania pliku';
  20. }
  21. } else {
  22. echo 'zbyt duży rozmiar pliku';
  23. }
  24.  
  25. chmod($currentdir.$wynik, 0644);
  26. echo '<img src="'.$currentdir.$wynik.'">';
  27.  
  28. }
  29. ?>


Wyskakuje takie cos :
Dziękujemy za przesłanie relacji. Do 24 h powinna ukazać się na stronie.

błąd podczas wysyłania pliku
Warning: move_uploaded_file(./pliki/130607113437/PICT0n899.JPG) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/m/i/n/minigra/www/upload1.php on line 16

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/home/tmp/phpcRU3oi' to './pliki/130607113437/PICT0n899.JPG' in /home/m/i/n/minigra/www/upload1.php on line 16
błąd podczas wysyłania pliku
Warning: chmod() [function.chmod]: Unable to access ./pliki/130607113437/PICT0n899.JPG in /home/m/i/n/minigra/www/upload1.php on line 25

Warning: chmod() [function.chmod]: stat failed for ./pliki/130607113437/PICT0n899.JPG in /home/m/i/n/minigra/www/upload1.php on line 25

Warning: move_uploaded_file(./pliki/130607113437/1.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/m/i/n/minigra/www/upload1.php on line 16

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/home/tmp/phphLXZwN' to './pliki/130607113437/1.jpg' in /home/m/i/n/minigra/www/upload1.php on line 16
błąd podczas wysyłania pliku
Warning: chmod() [function.chmod]: Unable to access ./pliki/130607113437/1.jpg in /home/m/i/n/minigra/www/upload1.php on line 25

Warning: chmod() [function.chmod]: stat failed for ./pliki/130607113437/1.jpg in /home/m/i/n/minigra/www/upload1.php on line 25


W ogole jak sie utworzy ten katalog co go mam zdefiniowany $currentdir= "./pliki/".date('dmyHis')."/"; i wejde na ftp'a i jak chce do niego wejsc to wyskakuje permission denied. Wiec mysle ze dlatego obrazki nie chca sie wgrac.

nie wiem czemu ten nowo utworzony katalog ma chmod 0644- to pewnie jest przyczyna, ale przeciez zdefiniowalem zeby mial 0777.

Dobra poradzilem sobie definiujac chmoda jeszcze raz dla $currentdir. Teraz dziala prawie wszystko ok, tzn zdjecia pojawiaja sie po wgraniu, folder sie tworzy itp, jednak za kazdym razem pod pierwszym zdjeciem pojawia sie napisa: "blad podczas wysylania pliku".


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
nexis
post 13.06.2007, 10:56:11
Post #4





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Jaką masz wersję silnika PHP na serwerze?

Ktoś w manualu napisał, że:

  1. <?php
  2. mkdir('/home/benge/photos/gallery1/extra_large/', 0777);
  3. ?>


nie działa i należy zrobić tak:

  1. <?php
  2. mkdir('/home/benge/photos/gallery1/extra_large', 0777);
  3. ?>


Czyli należy wpisać katalog bez ostatniego slasha.


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
Matiash
post 13.06.2007, 10:58:48
Post #5





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


serwer mam na ovh, wiec wersja to 5


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
nexis
post 13.06.2007, 11:02:56
Post #6





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


A próbowałeś z podanym przeze mnie rozwiązaniem?


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
Matiash
post 13.06.2007, 11:07:36
Post #7





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


nexis, tak teraz sprobowalem i tez dziala, dzieki smile.gif

A co to moze byc ze za kazdym razem pod pierwszym zdjeciem pojawia mi sie napisz " blad przesylania plikow" ?


--------------------
www.picture-globe.com
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 - 13:19