Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Upload plikow [Cudi]
Seth
post 21.03.2004, 23:40:03
Post #1





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Uwagi, pytania zwiazane zwiazane z artykulem Cudiego "Upload plikow" prosze pisac w tym temacie.
Go to the top of the page
+Quote Post
Sm0key
post 22.03.2004, 23:20:23
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 1
Dołączył: 26.02.2004
Skąd: kielce. //Świętokrzyskie

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


Ja bym proponowal dodanie do tego artykulu obsługi plików poprzez ftp ponieważ ostatnio spotkałem się z kontem na którym powyższy artykuł wyrzucał błedy i nie chcial uploadowac. Dopiero poprzez fopen dało rade uploadować pliki. Ale to tylko moja propozycja rolleyes.gif


--------------------
... aleobiad 80 %
"Doskonałości nie da się przyśpieszyć..."
Go to the top of the page
+Quote Post
Cudi
post 23.03.2004, 14:23:24
Post #3


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Artykuł pokazuje najprostszą drogę do uploadu plików, tzn. skorzystanie z wbudowanych w php funkcji. Piszesz o błędach, i teraz dochodze do wniosku że przeoczyłem (a raczej za mało wyraźnie zaznaczyłem) jedną kwestię, prawa dostępu do katalogu do którego chcemy wrzucić pliki. Prawdopodobnie to było przyczyną tych błędów, katalog musi mieć ustawione prawa na 777. Niedługo zrobię poprawkę, bo to dość ważna sprawa, może ona sprawić troche kłopotów początkującym (do których ten art jest kierowany).
Jeśli chodzi o obsługę uploadu plików przez ftp to napewno nie będe tego podpinał pod ten artykuł, może kiedyś dopisze osobną poradę, może zrobi to ktoś inny.
Dzięki za zwrócenie uwagi na dość ważną sprawę, czasami zdarza się że człowiek przeoczy coś co jest dla niego oczywiste winksmiley.jpg


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
dooshek
post 23.03.2004, 23:23:14
Post #4





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 22.10.2003
Skąd: Trójmiasto

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


Cytat
Artykuł pokazuje najprostszą drogę do uploadu plików, tzn. skorzystanie z wbudowanych w php funkcji.  Piszesz o błędach, i teraz dochodze do wniosku że przeoczyłem (a raczej za mało wyraźnie zaznaczyłem) jedną kwestię, prawa dostępu do katalogu do którego chcemy wrzucić pliki. Prawdopodobnie to było przyczyną tych błędów, katalog musi mieć ustawione prawa na 777. Niedługo zrobię poprawkę, bo to dość ważna sprawa, może ona sprawić troche kłopotów początkującym (do których ten art jest kierowany).
Jeśli chodzi o obsługę uploadu plików przez ftp to napewno nie będe tego podpinał pod ten artykuł, może kiedyś dopisze osobną poradę, może zrobi to ktoś inny.  
Dzięki za zwrócenie uwagi na dość ważną sprawę, czasami zdarza się że człowiek przeoczy coś co jest dla niego oczywiste winksmiley.jpg


No niezupelnie musi miec 777... to moze lepiej nie pisz jak ma byc napisane, ze zawsze musi miec 777.


--------------------
"Use the force - read the source"
Go to the top of the page
+Quote Post
Cudi
post 24.03.2004, 13:51:54
Post #5


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Najprościej jest ustawić na 777 i można być pewnym że nie będzie problemów z zapisem do tego katalogu. Tak może być? smile.gif


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
amr
post 31.03.2004, 03:28:07
Post #6





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 31.03.2004

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


przeczytałem, skopiowałem i nic....
wyskakuje tylko:
Upload pliku nie powiódł się!Dodatkowe informacje o uploadowanym pliku:
Array
(
[userfile] => Array
(
[name] => mickey.jpg
[type] => image/pjpeg
[tmp_name] => /tmp/php6lnrdj
[error] => 0
[size] => 18013
)

)

numer błedu 0 (czyli nie ma blędu??).plik sie nie wysyła, atrybuty 777
Go to the top of the page
+Quote Post
g0blin
post 3.04.2004, 23:38:43
Post #7





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 2.03.2003
Skąd: Tarnów

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


Mam male pytanie zwiazane z tym zagadnieniem, istnieje jakas mozliwosc aby sprawdzic czy plik dotarl w calosci na serwer ? Czyli w skrocie porownac rozmiar tego pliku co chcial przeslac uzytkownik a rzmiar tego co faktycznie dotarlo na serwer.


--------------------
Pozdrawiam
Piotr P. 'g0blin'
Go to the top of the page
+Quote Post
KRCreater
post 6.04.2004, 21:10:56
Post #8





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 13.01.2004
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Cytat
Ja bym proponowal dodanie do tego artykulu obsługi plików poprzez ftp ponieważ ostatnio spotkałem się z kontem na którym powyższy artykuł wyrzucał błedy i nie chcial uploadowac. Dopiero poprzez fopen dało rade uploadować pliki. Ale to tylko moja propozycja rolleyes.gif
Popieram winksmiley.jpg Mam ten sam problem


--------------------
Codziennie pojawiają się nowe pytania...
cms: underpoznan ...-> llllllllllllllllll 70%
forum: underpoznan ->
Go to the top of the page
+Quote Post
LukaszLenart
post 7.04.2004, 17:47:45
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 22.11.2003
Skąd: Sucha Beskidzka

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


Mysle, ze troche trzeba wyjasnic. Nie wszyscy uzywaja php na Linuxie.
Prawa o ktorych mowa musza byc podane takie aby uzytokwnik na ktorym dziala serwer mial prawo zapisu do danego katalogu. Przewaznie jest to uzytkownik apache, wiec wystarczy tak zmodyfikowac prawa do danego katalogu, aby uzytkownik apache mial tam prawo zapisu i odczytu (czasami trzeba plik uploadowac do uzytkownika ;-))

Druga rzecz to mozna ustawic katalog na pliki poza glowna sciezka serwera WWW (jesli mamy taka mozliwosc). Przewazanie jest tak, ze mamy do dyspozycji konto shellowe, i w katalogu public_html mamy umieszczac swoje strony (vide uczelnie). Mozna utworzyc sobie katalog files na tym samym poziomie co public_html i tam skladowac pliki. Trzeba miec jakis rejestr (np.w bazie danych) o posiadanych plikach (dobrze jest generowac nazwe po uploadzie, bedziemy miec pewnosc ze nikt nam nie nadpisze juz uploadowanego pliku). W rejestrze trzymamy informacje o pliku (orginalna nazwa, wielkosc, typ, odwolanie do ikony questionmark.gif?).

Trzecia rzecz, nie ma co sie sugerowac znacznikiem MAX_FILE_SIZE, nie jest on prawie wcale przestrzegany przez przegladarki (przetestowane na IE, Mozilla, Opera). I jesli ktos nam wysle wiekszy plik niz zdefiniowany w php.ini to dostaniemy brzydki komunikat (mozna jeszcze probowac po stronie Apachea cos zrobic).

Tak czy siak, jest to rzecz do poprawy, ale ogolnie dziala to fajnie ;-)

PS. Do autora, na przyszlosc moze dodac cos od siebie a nie tylko skopiowac manuala do php - bez obrazy ;-)


--------------------
Lukasz
Go to the top of the page
+Quote Post
itsme
post 7.04.2004, 19:27:04
Post #10





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




Cytat
PS. Do autora, na przyszlosc moze dodac cos od siebie a nie tylko skopiowac manuala do php - bez obrazy ;-)

ps do Ciebie: moze napiszesz jakis art od siebie a nie tylko krytykujesz ... moze cos o ftp questionmark.gif jezeli posiadasz taka wiedze .... oczywiscie bez obrazy ....
Go to the top of the page
+Quote Post
LukaszLenart
post 8.04.2004, 09:01:18
Post #11





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 22.11.2003
Skąd: Sucha Beskidzka

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


Nie ma problemu, nie napisze o ftp bo nie robilem z czyms takim i nie bede sciemniac, tylko np. moge napisac jak generowac sobie tekst w pionie (odwrocony). Moze byc? Do kogo wyslac tekst i w jakim formacie?


--------------------
Lukasz
Go to the top of the page
+Quote Post
scanner
post 8.04.2004, 10:39:42
Post #12





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cytat
jak generowac sobie tekst w pionie (odwrocony).
A jaki to ma związek z php?

Juz któryś raz mówię, - propozycjke tematów do wassago.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
LukaszLenart
post 8.04.2004, 11:04:42
Post #13





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 22.11.2003
Skąd: Sucha Beskidzka

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


Nigdy nie spotkales sie z tabele ktora ma 60 naglowkow kolumn, i jak to upchac na stronie, zeby miescilo sie w oknie przegladarki?
Tym bardziej ze nazwy naglowkow sa dlugie, a w wierszach masz tylko krzyzyki. A jedynie IE6 obsluguje CSS zwiazany z pionowym tekstem (ktory nie jest standardem CSS zaakceptowanym przez W3C ;-( )

A co do zwiazku z php, to chodzi o dynamiczne generowanie grafiki w php.

Propozycje tematu przesle do wassego.


--------------------
Lukasz
Go to the top of the page
+Quote Post
KRCreater
post 8.04.2004, 12:23:12
Post #14





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 13.01.2004
Skąd: Poznań

Ostrzeżenie: (10%)
X----


JA bym proponaował napisać coś o składni SQL'a.


--------------------
Codziennie pojawiają się nowe pytania...
cms: underpoznan ...-> llllllllllllllllll 70%
forum: underpoznan ->
Go to the top of the page
+Quote Post
LukaszLenart
post 8.04.2004, 14:10:33
Post #15





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 22.11.2003
Skąd: Sucha Beskidzka

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


Moze sprecyzuj co chcialbys sie dowiedziec?


--------------------
Lukasz
Go to the top of the page
+Quote Post
aleksander
post 9.04.2004, 12:40:38
Post #16





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


Bardzo fajny artykuł, przydał mi się do tworzenia panelu administracyjnego.
Rozbudowałem ten skrypt i chciałbym go przedstawić. Być może komuś on się przyda:

  1. <?php
  2. // NAZWA PLIKU - \"upload.php\" 
  3. // FUNKCJE: 
  4. // - UPLOADOWANIE PLIKU (by Cudi) 
  5. // - FILTR DLA WYBRANYCH TYPOW PLIKOW (http://www.dhtml.helion.pl/cgi-bin/listscript.fcgi?id=124) 
  6. // - UPLOADOWANIE DO WYBRANEGO KATALOGU (LISTA TWORZONA DYNAMICZNIE PRZEZ REKURENCYJNĄ FUNKCJ CZYTANIA KATALOGU ( PHPSolutions nr 02/2004) 
  7. // WSZELKIE SUGESTIE PROSZE ZGLASZAC NA GG:3820945
  8. echo '<script LANGUAGE=\"JavaScript\">
  9. <!-- Begin
  10. extArray = new Array(\".inc\"\".jpg\"\".gif\"); // TABLICA Z ROZSZERZENIAMI PLIKOW KTORE MAJA BYC AKCEPTOWANE DO WYSLANIA
  11. function LimitAttach(form, file)
  12. {
  13. allowSubmit = false;
  14. if (!file) return;
  15. while (file.indexOf(\"\") != -1)
  16. file = file.slice(file.indexOf(\"\") + 1);
  17. ext = file.slice(file.indexOf(\".\")).toLowerCase();
  18. for (var i = 0; i < extArray.length; i++) {
  19. if (extArray[i] == ext) { allowSubmit = true; break; }
  20. }
  21. if (allowSubmit) form.submit();
  22. else
  23. alert(\"Proszę wysyłać tylko pliki graficzne typu: \"
  24. + (extArray.join(\" \")) + \"nProsze wybrać nowy plik \"
  25. \"i wysłać ponownie.\");
  26. }
  27. // End -->
  28. </script>';
  29. if (!isset($_FILES['userfile']['tmp_name']))
  30. {
  31. echo &#092;"Tym skryptem możesz wysyłać pliki na serwer. Można wysyłać tylko pliki <script> document.write(extArray.join(' ')); </script>\";
  32. echo '<form enctype=\"multipart/form-data\" action=\"upload.php\" method=\"POST\" name=\"form\" >
  33. <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"30000\" />
  34. Plik do wysłania:<br>
  35. <select size=\"1\" name=\"dir\">';
  36. // FUNKCJA CZYTAJĄCA KATALOGI DO POLA SELECT
  37. $z = 1;
  38. function list_dir($chdir)
  39. {
  40. global $z;
  41. chdir($chdir);
  42. $handle = opendir('.');
  43. if ($z==1) // JAKO PIERWSZA POZYCJA POJAWI SIE KATALOG GLOWNY (./)
  44. {
  45. $somepath2 = str_replace (&#092;"../\", \"/\", $chdir);
  46. echo &#092;"<option value='c:/usr/apache/httpd/html\".$somepath2.\"'>.\".$somepath2.\"</option><br>n\";
  47. //echo \"./\" . $chdir . \"<br>\";
  48. $z = 0;
  49. }
  50. while ($file = readdir($handle))
  51. {
  52. if(is_dir($file) && $file != &#092;".\" && $file != \"..\") // TU MOZNA WSTAWIC FILTRY, JAKIE KATALOGI NIE MOGA SIE POJAIWC (SKLADNIA: && $file != \"NAZWA_KATALOGU\")
  53. {
  54. $sdirs[] = $file;
  55. }
  56. }
  57. for($i=0; $i<sizeof($sdirs); $i++)
  58. {
  59. $basedir = realpath($sdirs[$i]);
  60. $b1 = str_replace (&#092;"\" , \"/\", $basedir);
  61. $b2 = str_replace (&#092;"c:/usr/apache/httpd/html\", \".\", $b1);
  62. echo &#092;"<option value='\".$b1.\"'>\".$b2.\"</option><br>n\";
  63. list_dir($sdirs[$i]);
  64. chdir(&#092;"..\");
  65. }
  66. }
  67. list_dir(&#092;".\"); // WYWOLANIE FUNKCJI Z PARAMETREM FOLDERU OD KTOREGO MA ZACZAC SKANOWANIE
  68. // KONIEC FUNKCJI CZYTAJĄCEJA KATALOG
  69.  
  70. echo '</select>&nbsp;
  71. <input name=\"userfile\" type=\"file\" />
  72. <input type=button value=\"Wyślij\" onclick=\"LimitAttach(this.form, this.form.userfile.value)\" />
  73. </form>';
  74. }
  75. elseif (isset($_FILES['userfile']['tmp_name'])) // UPLOADOWANIE PLIKU
  76. {
  77. if( is_uploaded_file( $_FILES['userfile']['tmp_name'] ) )
  78. {
  79. $strUploadDir = $_POST['dir'] . &#092;"/\" . $_FILES['userfile']['name']; // TWORZENIE SCIEZKI BEZWZGLEDNEJ NA PODSTAWIE OPCJI WYBRANEJ W POLU SELECT
  80. if( move_uploaded_file( $_FILES['userfile']['tmp_name'], $strUploadDir ) )
  81. {
  82. echo 'Plik został pomyślnie uploadowany! <br />';
  83. }
  84. else
  85. {
  86. echo 'Upload pliku nie powiódł się!';
  87. }
  88. echo 'Dodatkowe informacje o uploadowanym pliku: <pre>' . print_r($_FILES, true ) . '</pre>';
  89. echo $strUploadDir; // SCIEZKA BEZWZGLENA UPLOADOWANEGO PLIKU
  90. }
  91. else
  92. {
  93. echo 'Wystąpił błąd podczas wysyłania pliku na serwer!<br>';
  94. }
  95. }
  96. ?>


Dodam tylko że nic nie jest napisane przeze mnie do końca. Upload plików wziąłem od Cudiego, rekurencyjne czytanie katalogu z psp solutions, a filtr wysyłanych plików z www.dhtml.helion.pl. Jednak wszystkie skrypty zostały zmodyfikowane. Inne bardziej, inne mniej.

Ten post edytował Olo 19.12.2004, 14:52:43
Go to the top of the page
+Quote Post
kwiateek
post 9.04.2004, 12:56:18
Post #17





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 13.01.2003
Skąd: 3rd ball of mud behind a big ball of burning gas

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


Cytat
Dodam tylko że nic nie jest napisane przeze mnie do końca. Upload plików wziąłem od Cudiego, rekurencyjne czytanie katalogu z psp solutions, a filtr wysyłanych plików z www.dhtml.helion.pl. Jednak wszystkie skrypty zostały zmodyfikowane. Inne bardziej, inne mniej.

To może byś to uwzględnił w komentarzach w kodzie.

Pozdrawiam.


--------------------
It's Time to Join the PLD Linux Generation!
<? while (!$success) { $try++; } ?>
Go to the top of the page
+Quote Post
aleksander
post 9.04.2004, 13:39:27
Post #18





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


rzeczywiście, nie pomyślałem o tym. Już poprawione
Go to the top of the page
+Quote Post
Brick
post 15.04.2004, 14:36:19
Post #19





Grupa: Zarejestrowani
Postów: 107
Pomógł: 9
Dołączył: 16.02.2004
Skąd: Kraków

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


A czym się różni właściwie funkcja copy od move_uploaded_file ?
Bo używam z powodzeniem tej pierwszej.

Czy komuś za pomocą takiego skryptu udało się wrzucić większy plik, np 15 czy 20 MB ? Bo mi się to nie udało.
Go to the top of the page
+Quote Post
splatch
post 15.04.2004, 14:45:35
Post #20





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


IMO w manualu jest to samo winksmiley.jpg.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 28.03.2024 - 18:50