[PHP] Jak zrobić upload pliku z dysku lokalnego na serwer? Krzysztof Szypulski - Piątek, 10 marca 2006 14:03:46
Do tego celu użyjemy prostego formularza z polem typu file. Formularz, aby mógl przesyłać pliki binarne musi mieć dodatkowy atrybut w znaczniku <form>, a mianowicie enctype="multipart/form-data". Wprowadziliśmy także ograniczenie wielkości przesłanego pliku do 50KB za pomocą ukrytego pola o nazwie MAX_FILE_SIZE.
if(is_uploaded_file($plik_tmp)) {
move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
<strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
}
else
echo "Nie udało się wysłać pliku <strong>$plik_nazwa</strong> na serwer";
?>
Maciej Wilk
(83.16.125.xxx) Poniedziałek, 17 kwietnia 2006 01:19:22
Jak wysłać uploadowany przez klienta plik graficzny jako załącznik do e-maila
(nawet bez zapisywania na serwerze). Z góry dziękuję za poradę.
Warning: move_uploaded_file(): SAFE MODE Restriction in effect
A co zrobić gdy serwer posiada safe_mode = on
jak powinien wyglądać skrypt ?
Od administratora:
Proponuję zastąpić move_uploaded_file() np. copy() być może to pomoże.
Aranval
(83.24.50.xxx) Poniedziałek, 29 maja 2006 15:51:48
Da sie dodać folder z zawartością.
Wystarczy pomajstrować w zarządzaniu folderami i zrobić skrypt tworzący odpowiednik folderu
na serverze i kopijący do niego wszystkie pliki (dane plików z fukcji używanych do zarządania folderami)
Kropa
(82.145.85.xxx) Środa, 07 czerwca 2006 20:25:44
a co zrobić żeby skasować plik z poziomu strony www?
Drogi administratorze.
Próbowałem połączyć oba skrypty i wyskakuje mi błąd linijki 28.
Pierwszy skrypt przesyła pliki prawidłowo, ale po dodaniu tego sprawdzającego rozszerzenie wszystko przestaje działać.
Proszę o pomoc!!
Od administratora:
Bo kod sprawdzający zawiera błąd, poprawna wersja poniżej: <?php $sp = explode(".",$plik_nazwa);
// sprawdzamy rozszerzenie if($sp[1] == "gif" or $sp[1] == "jpg") { echo "Plik poprawny"; // zamiast tego napisu wstaw kod, // ktory zapisuje plik na serwer } else { echo "Plik niepoprawny"; }
?>
Kula
(217.153.241.xxx) Sobota, 17 czerwca 2006 12:53:32
Ten skrypt niezapisuje mi tych plików pomimo tego że pisze : udało się .....
I jeszcze jedno chciałbym przerobić ten skrypt na cos ala imageshack.us pomoże ktoś?
Tak żeby można było wrzucac tylko pliki graficzne i żeby po wrzuceniu można było je wyświetlić
Skrypt uploadu grafiki
look
(80.54.200.xxx) Sobota, 24 czerwca 2006 18:07:21
A jakas funkcje trezba napsiac zeby pliki byly wyswietlane po dodaniu ?
Od administratora:
Nie bardzo rozumiem, co chcesz wyświetlić?
Marcin
(83.16.119.xxx) Poniedziałek, 03 lipca 2006 15:20:29
http://www.ceon.ovh.org/upload/upload.php
Nie działa, proszę sprawdzić.
Od administratora:
Darmowy serwer :-(
slavio
(81.219.130.xxx) Środa, 12 lipca 2006 18:18:21
Prosze o pomoc wszytsko wrzucilem na serwer i wyskakuje mi informacja w firefoxie kiedy chce dodac plik "unsaved nie jest zarejestrowanym protokolem" nie wiem o co chodzi prosze o pomoc a i jeszcze jedno do czego odnosi sie ten wers [action="index.php"]
Od administratora:
To raczej jakiś błąd przeglądarki.
ajssik
(83.11.63.xxx) Czwartek, 13 lipca 2006 15:42:46
a czy mozna zmienic nazwe zuploadowanego pliku podczas move_uploaded_file()? :-) lub inaczej: czy mozna plik ktory sie zuplodowalo przeniesc gdzies z inna nazwa?
Patrol
(81.219.217.xxx) Piątek, 21 lipca 2006 19:47:17
<?php
$sp = explode(".",$plik_nazwa);
// sprawdzamy rozszerzenie
if($sp[1] == "gif" or $sp[1] == "jpg") {
echo "Plik poprawny";
// zamiast tego napisu wstaw kod,
// ktory zapisuje plik na serwer
}
else {
echo "Plik niepoprawny";
}
?>
Ten kod jest wadliwy, ponieważ jeżeli w nazwe wystąpią dwie kropki np. screen.shot.jpg to nie przyjmie takiego pliku i też wyskoczy, że format niepoprawny!
Od administratora:
Tu masz rację :(
DoGeR
(83.5.35.xxx) Niedziela, 30 lipca 2006 14:12:20
A mógłby Administrator dać cały kod(połączony odpowiedznie rozszezenie z uploadem) bo probowalem złączyć i mi to nie wychodziło :(
Sylw
(213.156.97.xxx) Poniedziałek, 31 lipca 2006 00:37:03
Tak przy okazji wykrywania rozszerzenia pliku, może się zdarzyć, że ktoś ma plik o nazwie np. "test.doc.JPG". Poniższe przekształcenie wykaże, że rozszerzeniem pliku jest "jpg" (wcześniejszy przykład pokazałby "doc")
$ext=explode('.',$file_name); // rozbija nazwę
$extension=strtolower(end($ext)); // wyciąga ostatni element tablicy i zamienia wielkie litery na małe (niekiedy łatwiej tak porównywać).
Jeżeli chodzi o prawa do katalogu to 755 jest wystarczające
Od administratora:
Jeżeli chodzi o prawa do katalogu 755 to się z Tobą nie zgadzam...
danek
(83.16.141.xxx) Środa, 02 sierpnia 2006 18:28:58
Witam! Mam problem z dodawaniem plikow graficznych jpg tzn powyższy skypt do upload'u plików dodaje pliki z innym rozszerzeniem niz jpg a jpg nie:( Jaka może być tego przyczyna?
micek
(195.182.20.xxx) Poniedziałek, 07 sierpnia 2006 02:03:38
Mam takie pytanko.
Chce aby z poziomu przegladarki nadawac chmody plikom oraz katalogom.
Dobrze by tez bylo, aby w formule uploadu na server byla opcja nadawania chmodu, czyli wybieram plik, chce aby nadalo mu chmod 666, kopiuje go na server i nadaje automatycznie dany chmod. Czy ma moze ktos taki skrypt? dzieki pozdrawiam
Maximus
(62.233.184.xxx) Piątek, 11 sierpnia 2006 15:40:45
a jak zrobić aby z jednego formularza można bylo uploadowac kilka plikow jednoczesnie. tz aby byly 2 albo 3 pola przegladaj i jeden przycisk wyslij. Jak bedzie wygladal taki skrypt? Przy zalozeniu ze upladujemy do jednego katalogu?
Od administratora:
Trzeba dodać dodatkowe pola typu "file" i każde pole musi mieć inną nazwę.
pozone
(83.8.243.xxx) Niedziela, 13 sierpnia 2006 13:27:00
Skrypt działa prawidłowo... jednak mam pytanie. Załóżmy, że mój upload przyjmowałby duże pliki np. 50MB. Czy jest możliwość przerobienia tego skryptu tak, aby pokazywał ile procent pliku już zostało przesłane?
Od administratora:
Może jakiś javascript?
adam
(83.29.140.xxx) Poniedziałek, 14 sierpnia 2006 22:30:30
jak zrobic zeby odrazu ustawialo atrybut pliku na 644?
wojt.b
(85.89.175.xxx) Piątek, 25 sierpnia 2006 12:57:47
Mam pytanie odnośnie rozszerzeń przy uploadzie jaką dyrektywę trzeba wpisać i gdzie w skrypcie żeby np.: plik o nazwie "obraz.jpg.php" nie mógł być uploadowany ponieważ powyższy skrypt tegoż zabezpieczenia nie uwzględnia.
m1chu
(83.23.142.xxx) Niedziela, 10 września 2006 23:42:53
// sprawdzamy rozszerzenie
if($sp[$count_sp] == "gif" or $sp[$count_sp] == "jpg") {
echo "Plik poprawny";
// zamiast tego napisu wstaw kod,
// ktory zapisuje plik na serwer
}
else {
echo "Plik niepoprawny";
exit;
}
?>
SZA^H
(195.225.213.xxx) Środa, 20 września 2006 15:21:04
Podany na stronie kod sprawdzający rozszerzenie pliku moim zdaniem nadal ma wady. Np przy założeniu, że przesyłamy pliki *.rar upload pliku plik.part1.rar spowoduje wyświetlenie błędu, gdy tymczasem plik spełnia założenia.
mr.LuCaS
(83.26.232.xxx) Sobota, 30 września 2006 11:44:11
A da się uplodować w jednym formularzu, więcej niż dwa pliki za jednym wysłaniem, tzn. dwa pola file na jeden formularz kilkam submit, i oba się uploadują, bo bardzo potrzebne mi to. A jak narazie nie widzę żadnego sensownego rozwiązania, oprócz zrobienia osobnego formularza tylko do uploadowania obrazków. Dzięki z góry za pomoc.
Od administratora:
Wystarczy w jednym formularzu dać potrzebną liczbę pól tylu "file" i nie ma problemu.
porshe
(83.27.151.xxx) Czwartek, 26 października 2006 00:29:01
Witam, mam duży problem:)
Chciałbym, aby przed tym skryptem wyświetlało się pole wyboru "dodaj do katalogu - tutaj wybór pomiędzy katalogami [okienko]" Następnie dopiero pole ścieżki do pliku na dysku lokalnym i polecenie post. Oczywiście dodawane pliki mają docelowo lądować w określonych wyborem katalogach. Jeżeli tak się nie da to jak zmodyfikować ten skrypt by osobne pola służyły do wrzucania plików do innych katalogów? Co trzeba zmienić w zmiennych? Z góry dziękuję za odpowiedź
Internauta
(10.1.0.xxx) Piątek, 15 grudnia 2006 14:54:00
A w jaki sposób przerobić nazwę pliku w przypadku gdy zawiera polskie literki, spacje itp. na ładna nazwę przyjazną dla serwera ??? Przykładowo z nazwy: "żerzą CZ__ka.gif" zrobić "zerzaczka.gif" ????
if(is_uploaded_file($plik_tmp)) { move_uploaded_file($plik_tmp, "upload/$plik_nazwa"); echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!"; }
?>
cupik
(195.128.119.xxx) Wtorek, 19 grudnia 2006 18:21:06
A jak ma wyglądać skrypt który pozwala uploadować pliki graficzne do wielkości 1mb przy okazji sprawdzając czy na serwerze nie ma już takiego pliku i jeśli taki plik by był na serwerze była by możliwość zmiany nazwy pliku???
Od administratora:
Sprawdzenie wielkości pliku można zrobić porównując graniczną wielkość ze zmienną "size". Co do nazwy pliku, to ja stosuję taki mały trik, że zamiast oryginalnej nazwy stosuję jakiś dowolny znacznik czasu.
cupik
(195.128.119.xxx) Środa, 20 grudnia 2006 12:50:08
Skrypt który uploaduje pliki na serwer mam gotowy tylko problem w tym, że potrzebuje jeszcze w nim takie coś, że w przypadku istnienia pliku o tej samej nazwie żeby pojawiał się komunikat w stylu "plik o nazwie 'nazwa pliku' już istnieje. Zmień nazwę i spróbuj jeszcze raz".
Carll
(83.31.64.xxx) Piątek, 05 stycznia 2007 22:42:43
Czy ten skrypt do tego by pokazywał sie link do pliku to wstawić w innej podstronie czy tam gdzie reszta uploadu?
Od administratora:
Można na oba sposoby.
Prado
(83.10.254.xxx) Sobota, 03 lutego 2007 01:04:04
odnośnie skryptu pokazujacego linka po shostowaniu. Czy administrator moglby go polaczyc w jedna calasc z reszta skryptu. powiedzmy ze cos mi nie wychodzi ...
norek131
(83.14.241.xxx) Niedziela, 04 lutego 2007 16:17:51
Jak zrobic zeby napszyklad po 30 dniach jesli nikt nie sciaga czy tez nie oglada obrazka usuwal sie automatycznie
Od administratora:
Przede wszystkim trzeba by w jakiś sposób monitorować co się z danym plikiem dzieje. Zapisywać gdzieś w pliku lub w bazie jego pobrania łącznie z datą. Potem wystarczy sprawdzić te zapisy z datą bieżącą.
Johny12
(87.206.214.xxx) Niedziela, 04 lutego 2007 23:18:48
A wie ktoś z was jak zorbić ladowanie zdjecia na serwer z ograniczeniami rozdzielczości obrazu ??
Od administratora:
Nie da się sprawdzić rozdzielczości obrazka przed zapisaniem go na serwerze.
ZBuK
(213.134.164.xxx) Piątek, 09 lutego 2007 10:16:49
Uploadowanie opanowane - ale mam pytanie do Admina - jak przerobić ten skrypt w taki sposób, by uploadowane pliki dostawały na serwerze nowe ujednolicone nazwy w postaci np. liczbowej i każde nastepne zdjęcie miało w nazwie oczko wyższą liczbę?
A dodatkowo czy jest możliwość zapisywania linków do już uploadowanych plików w postaci pliku txt (tak by można było do nich wrócić i pobierać z tego pliku linki)?
AlvaRo
(81.190.138.xxx) Poniedziałek, 12 lutego 2007 09:41:29
Witam Kompletnie nie Rozumiem PHP Chciałem Zrobic Upload bo mam małą przestrzen dyskową i chciałem tam wzucac Przydatne pliki które nie potrzebnie zawalają mi miejsce.... zkopiowalem ten skrypt wziołem plik kliknolem wyslij ale plik sie nie wyslal i wyswietlilo mi sie nie mozna odnalesc serwera Prosze o pomoc...
GG: 7258532
Od administratora:
Może serwer nie obsługuje uploadu? Albo wrzucasz za duże pliki?
kogiel
(83.13.85.xxx) Czwartek, 01 marca 2007 09:24:04
ten upload dziala swietnie ale niewiem dlaczego jak dodam <a href.....itd
to przestaje dzialac robi sie biala strona
Od administratora:
Na pewno popełniasz jakiś błąd.
Student
(83.30.131.xxx) Piątek, 02 marca 2007 09:04:22
To może ktoś wstawi cały uzupełniony kod z dodanymi najlepszymi rozwiązaniami?
fred
(62.121.133.xxx) Piątek, 02 marca 2007 22:14:35
nie moge zauploadowac pliku powyzej 5mb i nie ma to zwiazku z ograniczeniem ktore wprowadzamy w kodzie. Czemu tak sie dzieje?
Od administratora:
Serwer ma ograniczenie. Najczęściej są to 4MB.
mastersam
(83.27.79.xxx) Niedziela, 18 marca 2007 17:40:54
a co zrogbic zeby serv obslugiwal upload??
Od administratora:
To akurat nie zależy od Ciebie, chyba że masz własny serwer.
Robeeeert
(62.121.75.xxx) Niedziela, 22 kwietnia 2007 12:04:26
skopiowałem ten skrypt na strone ale po uploadzie pokazuje sie strona o podanym adresie nie istnieje
Od administratora:
A nazwa pliku jest taka sama jak nazwa w action...?
Wojciech
(83.19.247.xxx) Poniedziałek, 23 kwietnia 2007 18:17:54
Sluchajcie proboje polaczyc te kody pol dnia i nic
potrzebuje prostego skryptu ktory bedzie potrafil wploadowac tylko pliki o 2 okreslonych rozszezeniach np jpg i png oraz na koniec pokaze urzykownikowi link do pliku na serwerze tak wby gosc mogl dac ten link nap w komentarzu takim jak ten i jeszcze jedna warzna sprawa jesli urzytkownik proboje wgrac plik ktory juz istnieje zeby skrypt sam zmienil nazwe (nap dodajac jakis cyferki) nazwy plikow nie maja znaczenia chodzi o to by ktos zauploadowal obrazk i mogl go umiescic na stronce z tego wszytkie co tu napisaliscie kminilem pol dnia wyszlo mi cos takiego
<?php
echo '<?xml version="1.0" encoding="iso-8859-2"?>';
?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
ale to niestety nie dziala dlatego prosze was o pomoc nieznam sie za wiele na php dopiero sie ucze :( i jeszcze takie pytanko gdyz czytalem gdzies ze niektore skrypty moga byc niebezpieczne bo ktos mogl by cos wgrac i namotac, czy ten jest bezpieczny? aha informacji serwer mam na forall.pl z gory dzieki
Wszystko dziala fajnie ale po kliknieciu na wyslij, w czasie ladowania strony dolny pasek (tam gdzie znajduje sie info o ilosci % pobranych, czas, szybkosc itp) przegladarki szaleje, podając ekstremalne wartosci np: procent: 14235%, pobrano: 500.4MB, szybkość 9884.4 KB/s.
Czy to jest normalne? w niczym to nie przeszkadza?
a dlaczego tak się dzieje? dodam iz wysylany plik zajmuje max 200kb.
endriu
(83.15.44.xxx) Niedziela, 13 maja 2007 15:38:22
witam
u mnie skrypt ladnie smiga ale ostatnio probowalem dopisac pare linijek zeby pokazywalo date dodania do servera i rozmiar i nic nie wychodzi, wiec moglyby mi ktos pomoc ?
kkuba
(81.15.156.xxx) Wtorek, 22 maja 2007 14:56:20
Witam!
Skrypt super sie spisuje, połączyłem co trzeba.
A chce zrobić sprawdzenie rozszerzenia... - dodaje... i błąd w którejś tam linii... :/ przesyłam kod, który teraz mam i prosze o zmodyfikowanie go na poprawny :)
if(is_uploaded_file($plik_tmp)) {
move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
<strong>$plik_rozmiar bajtów</strong> został przesłany na serwer! <br>
Jego adres to: <a href=http://www.upload.gram.boo.pl/upload/$plik_nazwa>
http://www.upload.gram.boo.pl/upload/$plik_nazwa</a>.<br>
<br>Poniżej kody do wklejenia na stronę... <br><br>
1. Jako obrazek <br>
<textarea><a target='_blank' href='http://www.upload.gram.boo.pl'><img src=
'http://www.upload.gram.boo.pl/upload/$plik_nazwa' border='0' alt='GramUpload - Darmowy upload plików do 4MB!'></a>
</textarea><br><br>
2. Jako link <br>
<textarea><a href='http://www.upload.gram.boo.pl/upload/$plik_nazwa>
$plik_nazwa</a></textarea>";
}
?>
Z GÓRY DZIĘKUJE! :D
Od administratora:
Akurat w tym kodzie nie ma błędu.
misiek
(89.174.47.xxx) Wtorek, 29 maja 2007 10:09:55
BaRoWh
(62.21.1.xxx) Wtorek, 29 maja 2007 18:43:50
Witam. Uzywam tego uploadera. Serwer ma ograniczenie plikow 10 MB.
Mały plik łandie sie wysyła, ale jak chce wysłac 3 MB plik wraca mi po kilku minutach do strony glownej nie ładujac pliku. Cóz to jest? :)
Od administratora:
Przekroczony czas wykonywania skryptu. Być może masz słabsze łącze i ten 3MB plik za długo się ładuje.
Rozar
(87.205.52.xxx) Wtorek, 26 czerwca 2007 13:53:55
a ja mam problem taki:
zrobilem tu jest:
http://rozar.byethost7.com/upload/index.php
no i niby wszystko ladnie, komuniukat ze plik zostal wyslany a go tam nie ma :/
tu kod: