Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]dynamiczny upload zdjęć
Forum PHP.pl > Forum > Przedszkole
eki
Witam!
proszę o podpowiedź jak stworzyć dynamiczny upload zdjęć. Użytkownik ładuje zdjęcie i od razu wyświetla się mu ono na stronie.
Chociaż kierunek,w którym powinnam iść....
atomp3
raczej nie dostaniesz gotowego rozwiazania, ale proponuje zapoznac sie z

http://xajaxproject.org/wiki/Xajax_0.2:_Ti...ks:_File_Upload

Dluga droga potzrebna ci bedzie klasa do obrobki zdjec oraz wiedza z zakresu Ajaxa.

Pozdr.
webasek
Poczytaj o mintajax i wszystko będzie jasne. Prześlesz formularz za pomocą tej klasy i potem wyświetlisz w otpowiednim miejscu odpowiedź z pliku poczytaj zrozumiesz
eki
tak, wiem, ajax... smile.gif
ale samym js-em nie da się tego zrobić?questionmark.gif
golaod
Niestety Ajax jest potrzebny do wysłania zdjęcia (o ile go jeszcze obrabiamy i wprowadzamy do bazy) z formularza do skryptu php.
Js potrzebne jest tylko (a bardziej HTML DOM) do wyświetlenia tego od razu na ekranie.
webasek
chyba, że robisz to z przeładowaniem strony to php wystarczy i wyświetlenie ostanio dodanego zdjęcia do bazy
eki
jak zrobić przeładowanie?właśnie nigdzie nie mogę na to natrafić
golaod
Przeładowanie wygląda w ten sposób, że:
Jesteś aktualnie na stronie gdzie się upload'uje obrazek tak ?
Wiadomo jednak, że po submit trzeba gdzieś przejść (do jakiegoś skryptu który odbierze dane z formularza).
W tym skrypcie nie wiem tworzysz miniaturki robisz co chcesz, dodajesz do bazy i wysyłasz header z Location: upload.php i np. w sesji dodajesz tylko ID zdjęcia w bazie które ostatnio dodałeś. Potem sprawdzasz czy ta zmienna sesyjna z ID jest i wtedy zamiast sam formularz, wyświetlasz jeszcze obrazek.
sanchoo
"Niestety Ajax jest potrzebny do wysłania zdjęcia" - raczej sie tak nie da..

Ajaxem nie zrobisz upload-u pliku smile.gif

Ja to zrobiłem tak:
Formualrz wysyłam w ramce 1x1 której nie widać smile.gif pliczek się wysyła.. dodatkwo zorbiłem to tak ze wybierasz fgotke ona sie wysyla odrazu, jak sie wysle robi sie miniaturka (gotowe klasy). w ramce 1x1 gdzie jak sie wyle plik teoretycznie ma poajwic sie koncowy etap.. tam odpaalsz skrypt ktory podmieni diva na glwoenj stronie z malym obrazkiem juz smile.gif

Wszystko wyglada fajnie i abrdzo dynamicznie....
golaod
""Niestety Ajax jest potrzebny do wysłania zdjęcia" - raczej sie tak nie da.. " Czym jest zdjęcie ? (polecam sprawdzić np. w php za pomocą echo "plik.jpg"
eki
sanchoo,a jesli formularz ma wiecej skladnikow niz samo ladowanie zdjec?? jest tresc i zdjecia,teraz ktos laduje zdjecie i juz je widzi,ale ma caly czas widoczny tekst ktory edytuje. w takim wypadku wyjdzie to twoje rozwiazanie??
Chrom
Aby przeładować stronę wystarczy dać nagłówek w formularzu:
  1. <form action="<?php $_SERVER[PHP_SELF] ?>" method="POST" enctype="multipart/form-data" name="formularz">


aby sprawdzić czy wysłano formularz
  1. <?php
  2. if (!empty($_POST["submit"])
  3. ?>


i dajemy taki skrypt który kiedyś korzystałem
  1. <?php
  2. Sprawdzamy czy plik zosta&#322; wysłany
  3. if(is_uploaded_file($_FILES[plik][tmp_name][$i])){
  4. if($_FILES[plik][error][$i] != 0){
  5. $komunikat[] = "Wystąpił błąd podczas przesyłania pliku! Sprawdź czy plik posiada odpowiednią wagę i spróbuj ponownie! ";
  6. }
  7. if($_FILES[plik][type][$i] == "image/jpeg" ||
  8. $_FILES[plik][type][$i] == "image/png" ||
  9. $_FILES[plik][type][$i] == "image/gif"){
  10. list($width, $height ) = getimagesize($_FILES[plik][tmp_name][$i]);
  11. if($width>100 || $height>100)
  12. {
  13. $komunikat[] .= "Za duże wymiary obrazka!";
  14. $uwaga = 1;
  15. }
  16. else{
  17. $plik_nazwa = "$data"."_$i".".jpg";
  18. if(move_uploaded_file($_FILES[plik][tmp_name][$i], "upload/$plik_nazwa")){
  19. }else{
  20. $komunikat[] .=  "Wystąpił nieoczekiwany błąd podczas kopiowania pliku nr $i! ";
  21. }
  22. }
  23. }
  24. ?>

sprawdź nawiasy.
to są fragmenty ale wystarczy połączyć do formularza i powinno działać
eki
jeszcze jedno mam pytanie - mozna umiescic formularz w formularzu??
Chrom
po co?
wszystko prześlesz za pomocą jednego
sanchoo
@eki, ja to tak dokladnie zrobilem smile.gif dziala cos podbnie jak gmail.. dolacnczasz plik.. i niczym wyszlesz maila... plik w tle sie wysyla... a jak sie wysle poda ci jego rozmiar smile.gif
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.