Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Upload
Forum PHP.pl > Forum > Przedszkole
Herny
Witam.
Chodzi mi o stworzenie skryptu uploadu wraz z opisem pliku i jednym opcjonalnym polem, w którym wklejałoby się link.
Po nacisnieciu przycisku np. wyslij plik zostanie wysłany do katalogu np. /uploads i zostanie wyswietlona strona z linkiem do tego pliku.

Próbowałem tego.
http://forum.programosy.pl/skrypt-uploadu-...w-vp793955.html

Ale gdy wyśle plik nie ma go katalogu który podaje :/
potreb
Ciekawe, że nie ma tam pliku zapewne coś źle robisz. Jakbyś sypnął jakimś errorem to co innego. Skrypt powinien działać poprawnie, możliwe że za duży plik wysyłasz bo masz ustawione na 5 mega lub katalog nie istnieje lub twój serwer nie ma możliwości wysyłania.
Herny
Jednak skrypt działa, ale z dużym opoźnieniem.
tzn. plik pojawia się dopiero po kilkunastu minutach.

To pomoże ktoś z tym opisem i całą resztą co pisałem wyżej

Edit.

Dało by się jeszcze zrobić coś w stylu dodawania losowej liczby przy zakonczeniu nazwy?
Zrobiłem takie coś:
$plik_nazwa = $_FILES['plik']['name'].rand(1, 15000);

Ale wtedy rozszeżenie nie bedzie działać
Fafu
Kod
Jednak skrypt działa, ale z dużym opoźnieniem.
tzn. plik pojawia się dopiero po kilkunastu minutach.

laugh.gif
Weź sie wyloguj z ftp i znowu zaloguj to zobaczysz, że plik już jest tylko jak używasz Total Commandera to on buforuje katalogi
potreb
Cytat(Herny @ 30.08.2009, 18:38:09 ) *
Dało by się jeszcze zrobić coś w stylu dodawania losowej liczby przy zakonczeniu nazwy?
Zrobiłem takie coś:
$plik_nazwa = $_FILES['plik']['name'].rand(1, 15000);

Ale wtedy rozszeżenie nie bedzie działać


Jeżeli chcesz dopisać unikalny id do końca nazwy pliku zainteresuj się:
http://pl.php.net/manual/pl/function.pathinfo.php
CyberDuck_
albo nacisnij poprostu ctrl + R - odswierzenie zawartosci katalogu ...
tybetiusz
Jeśli dodajesz losową liczbę to zrób taki "sprawdzacz - pętlę", który będzie sprawdzał, czy nazwa jest wolna.
CyberDuck_
Przy duzej ilosci plikow z obrazkami moze sie
zaczac problem. Lepiej jest nadawac nowa nazwe
pliku dodawanego np na podstawie znacznika czasu
plus np dwie ostatnie cyfry microtime. Wtedy masz
pewnosc, ze sie dany plik nie powtorzy i dodatkowo
latwo bedziesz mogl znalezc te pliki.
Utworz dodatkowo foldery od np 0 do 9 i wrzucaj do nich
obrazki welug ostatniej cyfry. Czyli jesli obrazek bedzie
mial nazwe z cyfra na koncu 3 to wrzucasz do foldera 3, itd.
W przyszlosci to zaprocentuje porzadkiem na serwerze i
latwoscia wykonywania backup, albo wrzucenia zawartosci
na inny serwer.
Np cos takiego :
  1. if ($wyslij_file != '') {
  2.  
  3. # sprawdzenie obrazka wraz z zapisem na dysk serwera
  4. $blad ='';
  5. $file_net_tab = explode(".", $file_name);
  6.  
  7. $il_dan = count($file_net_tab);
  8. $rozszerzenie = $file_net_tab[$il_dan - '1'];
  9. $file_name = substr(microtime(), 2, 3) .time() ."." .$rozszerzenie;
  10.  
  11. @copy("$file", "$folder$file_name"); //zapis pliku na dysk
  12. if (file_exists("$folder$file_name")) {
  13. $size = getImageSize("$folder$file_name");
  14. if ($size[0] > $_SESSION['maxX'] OR $size[1] > $_SESSION['maxY']) {
  15. $blad = "Rozmiary obrazka przekraczaja dopuszczalne wymiary ".$_SESSION['maxX'] ." x ".$_SESSION['maxY'] ." pixeli.";
  16. @unlink("$folder$file_name");
  17. }
  18. if ($size[0] <= 50 OR $size[1] <= 50) {
  19. $blad = "Obrazek zbyt mały. Najmniejszy dopuszczalny rozmiar to 20 x 20 pisxeli.";
  20. @unlink("$folder$file_name");
  21. }
  22.  
  23. } else {
  24.  
  25. $blad = "Plik niezostał zapisany z nieznanych przyczyn.Mógł wystąpić błąd w transmisji danych.";
  26. @unlink("$folder$file_name");
  27.  
  28. }

To jest oczywiscie tylko tak na szybko wiec mozesz sie jedynie
na tym opierac, a nie kopiowac ... chociaz skrypt powinien dzialac.
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.