Mass Photo Uploader - masowe dodawawanie zdjęć do galerii
|
bartek124 |
Dodany dnia 20.08.2008 16:34:20
|

Weteran

Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Witam.
Przedstawiam Wam narzędzie do masowego uploadu zdjęć. Możecie mylić z Watermark Mass Upload Mod - nie, to nie jest to. Owszem, cześć kodu "pożyczyłem" do tej modyfikacji (z wersji 2), ale część też sam napisałem. Pozbyłem się zbędnych zapytań, znakowania wodnego, dodałem komunikaty o błędach i wyszło całkiem ciekawe narzędzie.
Testowane przeze mnie, gra i buczy, jednak gdyby coś nie ten teges to proszę zgłaszać.
W załączniku gotowe pliki i locale, a poniżej instrukcja modyfikacji pliku administration/photos.php.
Linia 223, szukasz:
redirect(FUSION_SELF.$aidlink."&album_id=".$_GET['album_id']."&rowstart=$rowstart");
pod tym dodajesz:
} elseif(isset($_POST['mass_upload'])) {
if(isset($_POST['mu_folder'])) {
// USTAWIENIA
// wartosc poczatkowa order
$order = dbresult(dbquery("SELECT MAX(photo_order) FROM ".DB_PHOTOS." WHERE album_id=".$_GET['album_id']),0)+1;
// dozwolone typy plikow
$photo_types = array(".gif",".jpg",".jpeg",".png");
// usuwane znaki z tytulu
$title_bad = array(".gif",".jpg",".jpeg",".png", "_");
$title_good = array("", "", "", "", " ");
//sciezka do plikow tymczasowych
$temp_path = BASEDIR."photo_upload/".$_POST['mu_folder']."/";
//lista plikow
$dir = makefilelist($temp_path, ".|..", true, $type="files");
$dir = array_reverse($dir);
// bledy
$errors = "";
$bad_file = "";
$bad_name = "";
$too_big = "";
$too_big_wh = "";
$exist = "";
if(count($dir) != 0) {
foreach($dir as $entry) {
$error = "";
// plik tymczasowy
$temp_file = $entry;
// sciezka do pliku tymczasowego
$temp_path_file = $temp_path.$temp_file;
// nazwa pliku w dwoch czesciach (nazwa i rozszerzenie osobno)
$photo_name = strtolower(substr($temp_file, 0, strrpos($temp_file, ".")));
$photo_ext = strtolower(strrchr($temp_file,"."));
// docelowa sciezka pliku
$photo_dest = PHOTODIR;
if(!in_array($photo_ext, $photo_types) || !@getimagesize($temp_path_file)) {
$error .= "y";
$bad_file .= $photo_name.$photo_ext."<br />";
} else {
$photo_pic = @getimagesize($temp_path_file);
if (!preg_match("/^[-0-9A-Z_\.\[\]]+$/i", $photo_name)) {
$error .= "y";
$bad_name .= $photo_name.$photo_ext."<br />";
}
if (filesize($temp_path_file) > $settings['photo_max_b']) {
$error .= "y";
$too_big .= $photo_name.$photo_ext."<br />";
}
if ($photo_pic[0] > $settings['photo_max_w'] || $photo_pic[1] > $settings['photo_max_h']) {
$error .= "y";
$too_big_wh .= $photo_name.$photo_ext."<br />";
}
if (file_exists($photo_dest.$photo_name.$photo_ext)) {
$error .= "y";
$exist .= $photo_name.$photo_ext."<br />";
}
}
// jezeli nie ma bledu, dodajemy zdjecie
if($error == "") {
//przesuwamy plik tymczasowy do
rename($temp_path_file, $photo_dest.$photo_name.$photo_ext);
//ustawiamy odpowiednie chmody
chmod($photo_dest.$photo_name.$photo_ext,0644);
// plik wlasciwy do przetworzenia, wymiary
$imagefile = @getimagesize($photo_dest.$photo_name.$photo_ext);
// tworzymy miniaturke 1
$photo_thumb1 = image_exists($photo_dest, $photo_name."_t1".$photo_ext);
createthumbnail($imagefile[2], $photo_dest.$photo_name.$photo_ext, $photo_dest.$photo_thumb1, $settings['thumb_w'], $settings['thumb_h']);
//jezeli zdjecie ma wieksze wymiary nic miniaturka 2, tworzymy ja
if ($imagefile[0] > $settings['photo_w'] || $imagefile[1] > $settings['photo_h']) {
$photo_thumb2 = image_exists($photo_dest, $photo_name."_t2".$photo_ext);
createthumbnail($imagefile[2], $photo_dest.$photo_name.$photo_ext, $photo_dest.$photo_thumb2, $settings['photo_w'], $settings['photo_h']);
} else {
$photo_thumb2 = "";
}
// dane do zapisu w bazie
$photo_title = str_replace($title_bad, $title_good, strtolower($temp_file));
$photo_description = stripinput($_POST['mu_photo_description']);
$photo_order = $order;
$photo_comments = isset($_POST['mu_photo_comments']) ? "1" : "0";
$photo_ratings = isset($_POST['mu_photo_ratings']) ? "1" : "0";
$photo_file = $photo_name.$photo_ext;
//zapis w bazie
$result = dbquery("INSERT INTO ".DB_PHOTOS." (album_id, photo_title, photo_description, photo_filename, photo_thumb1, photo_thumb2, photo_datestamp, photo_user, photo_views, photo_order, photo_allow_comments, photo_allow_ratings) VALUES ('".$_GET['album_id']."', '$photo_title', '$photo_description', '$photo_file', '$photo_thumb1', '$photo_thumb2', '".time()."', '".$userdata['user_id']."', '0', '$photo_order', '$photo_comments', '$photo_ratings')");
//zwiekszamy order o jeden
$order++;
}
$errors .= $error;
}
if($errors != "") {
if($bad_file != "") {echo "<div class='admin-message'><strong>".$locale['mu008']."</strong><br />$bad_file</div>";}
if($exist != "") {echo "<div class='admin-message'><strong>".$locale['mu009']."</strong><br />$exist</div>";}
if($bad_name != "") {echo "<div class='admin-message'><strong>".$locale['mu010']."</strong><br />$bad_name</div>";}
if($too_big != "") {echo "<div class='admin-message'><strong>".sprintf($locale['mu011'], parsebytesize($settings['photo_max_b']))."</strong><br />$too_big</div>";}
if($too_big_wh != "") {echo "<div class='admin-message'><strong>".sprintf($locale['mu012'], $settings['photo_max_w'], $settings['photo_max_h'])."</strong><br />$too_big_wh</div>";}
} else {
echo "<div class='admin-message' style='font-weight:bold;'>".$locale['mu013']."</div>";
}
} else {
echo "<div class='admin-message' style='font-weight:bold;'>".$locale['mu014']."</div>";
}
} else {
echo "<div class='admin-message' style='font-weight:bold;'>".$locale['mu015']."</div>";
}
Linia ~285, znajdź i usuń (zostaw jedną klamrę } przed poniższym ):
else{
Linia 367, znajdź i usuń z klamrę } :
echo "</td></tr>\n</table></form>\n";
closetable();
}
Znajdź:
if (isset($_GET['action']) && $_GET['action'] == "edit") {
echo "<input type='submit' name='cancel' value='".$locale['440']."' class='button' />\n";
}
echo "</td></tr>\n</table></form>\n";
closetable();
i pod tym dodaj:
if(!isset($action)) {
opentable($locale['mu001']);
// tworzymy liste katalogów
$gallery_dir = makefilelist("../photo_upload/", ".|..", true, "folders");
echo "<form name='mu_inputform' method='post' action='".FUSION_SELF.$aidlink."&album_id=".$_GET['album_id']."'>\n";
echo "<table cellspacing='0' cellpadding='0' class='center'>\n<tr>\n";
echo "<td valign='top' class='tbl'>".$locale['mu002']."</td>\n";
echo "<td class='tbl'><select name='mu_folder' size='5' class='textbox' style='width:330px;'>\n";
foreach($gallery_dir as $gallery){
echo "<option value='$gallery'>$gallery</option>\n";
}
echo "</select>";
echo "</td>\n</tr>\n<tr>\n";
echo "<td valign='top' class='tbl'>".$locale['mu003']."</td>\n";
echo "<td class='tbl'><textarea name='mu_photo_description' cols='60' rows='5' class='textbox' style='width:330px;'></textarea><br />\n";
echo display_bbcodes("300px", "mu_photo_description", "mu_inputform", "b|i|u|center|small|url|mail|img|quote")."</td>\n";
echo "</tr>\n<tr>\n";
echo "<td colspan='2' align='center' class='tbl'><br />";
echo "<label><input type='checkbox' name='mu_photo_comments' value='yes' checked/> ".$locale['mu004']."</label><br />\n";
echo "<label><input type='checkbox' name='mu_photo_ratings' value='yes' checked/> ".$locale['mu005']."<br /><br /></label>\n";
echo "<input type='submit' name='mass_upload' value='".$locale['mu006']."' class='button'>\n";
echo "</td>\n</tr>\n</table>\n</form>\n";
echo "<br />".$locale['mu007'];
closetable();
}
Tyle.
W katalogu głównym tworzymy katalog photo_upload i do niego wrzucamy katalogi ze zdjęciami. Langi sobie skopiujcie z paczki.
Później wrzuconym katalogom ze zdjęciami i zdjęciom nadajemy chmody 777!
Jeszcze raz proszę zgłaszać ewentualne błędy.
Zalecenia:
- jak jest to ogromna ilość zdjęć, powiedzmy 1000, rozdziel je na kilka folderów np po 250-350. Wtedy nie dojdzie do przekroczenia czasu wykonywania skryptu
Pozdro.
Changelog:
1.0 - pierwsza wersja :P
1.1 - dodane sprawdzanie istnienia funkcji rename, jezeli nie ma używamy copy.
bartek124 dodał/a następującą plik:
Edytowane przez bartek124 dnia 26.02.2009 16:38:29
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
Wścibski Gość |
Dodany dnia 11.04.2025 09:17:45
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
zezol |
Dodany dnia 20.08.2008 18:36:47
|

Bywalec

Postów: 593 Pomógł: 34
Data rejestracji: 09.12.2006 22:16
|
bartek124, wielkie niech będą Ci dzięki! A już myślałem, że będę musiał dodawać ładnych kilkadziesiąt zdjęć ręcznie .
Pozdro
Najpierw sprawdź, czy działa //bartek124
Dobra myśl . Tyle, że chyba i tak wezmę zewnętrzną galerię. Gander ostatnio znalazł bardzo fajną .
Edytowane przez zezol dnia 23.08.2008 19:50:50
|
|
|
|
amajk |
Dodany dnia 23.08.2008 18:05:23
|

Przedszkolak

Postów: 13
Data rejestracji: 29.02.2008 13:19
|
Skopiowałem pliki z paczki i przy próbie dodanie zdjęć wyskoczyło kilka błędów.
Warning: rename(../photo_upload/bal_przeierancow_maly/bal_przebierancow55.JPG,../images/photoalbum/bal_przebierancow55.jpg) [function.rename]: Permission denied in /srv/www/vhosts/amajk.netarteria.eu/httpdocs/administration/photos.php on line 285
Warning: chmod() [function.chmod]: Unable to access ../images/photoalbum/bal_przebierancow55.jpg in /srv/www/vhosts/amajk.netarteria.eu/httpdocs/administration/photos.php on line 287
Warning: chmod() [function.chmod]: stat failed for ../images/photoalbum/bal_przebierancow55.jpg in /srv/www/vhosts/amajk.netarteria.eu/httpdocs/administration/photos.php on line 287
Notice: Undefined variable: origimage in /srv/www/vhosts/amajk.netarteria.eu/httpdocs/includes/photo_functions_include.php on line 28
Warning: imagesx(): supplied argument is not a valid Image resource in /srv/www/vhosts/amajk.netarteria.eu/httpdocs/includes/photo_functions_include.php on line 28
Notice: Undefined variable: origimage in /srv/www/vhosts/amajk.netarteria.eu/httpdocs/includes/photo_functions_include.php on line 29
Warning: imagesy(): supplied argument is not a valid Image resource in /srv/www/vhosts/amajk.netarteria.eu/httpdocs/includes/photo_functions_include.php on line 29
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /srv/www/vhosts/amajk.netarteria.eu/httpdocs/includes/photo_functions_include.php on line 51
Notice: Undefined variable: origimage in /srv/www/vhosts/amajk.netarteria.eu/httpdocs/includes/photo_functions_include.php on line 52
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /srv/www/vhosts/amajk.netarteria.eu/httpdocs/includes/photo_functions_include.php on line 52
Do każdego zdjęcia wyświetla się taki zestaw.
Nie potrafię tego rozgryźć :( Proszę o poradę.
PS. Pojedynczo zdjęcia dodają się poprawnie.
Edytowane przez amajk dnia 23.08.2008 18:10:35
|
|
|
|
Pieka |
Dodany dnia 23.08.2008 19:36:40
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Sprawdz plik z zalacznika. Za rada autora skryptu, zostala zmieniona zablokowana u Ciebie funkcja rename na copy. Bartek pozniej uzupelni temat, w chwili obecnej boryka sie z problemami technicznymi 
Pieka dodał/a następującą plik:
Jestem jaki jestem 
|
|
|
|
amajk |
Dodany dnia 23.08.2008 22:36:04
|

Przedszkolak

Postów: 13
Data rejestracji: 29.02.2008 13:19
|
Dziękuje. Teraz zadziałało.
Usunąłem całą tą jedną galerię, która nie weszła. I nowa galeria już wciągnęła i wyświetliła zdjęcia.

|
|
|
|
bartek124 |
Dodany dnia 24.08.2008 12:48:57
|

Weteran

Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
W pierwszym poście poprawiona wersja . Myślę, że już powinno być ok.
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
piterus |
Dodany dnia 26.08.2008 20:10:11
|

Bywalec

Postów: 490 Pomógł: 33
v7.02.07 Data rejestracji: 19.12.2005 09:29
|
Bardzo fajny skrypcik. I potrafi wspoldzialac z Picture Flow autorstwa Wooyii 
Tylko sie zastanawiam, dlaczego skrypt krzyczal, jak folder z fotkami w katalogu photo_upload nie mial CHMODow ustawionych na 777? Po zmianie wszystko juz bylo ok.
Edytowane przez szymon dnia 26.08.2008 23:22:09
Piterus World mój blog i miejsce moich eksperymentów. Ubi lex, ibi poena Kontakt przez komunikatory tylko dla znajomych...
|
|
|
|
mawi |
Dodany dnia 01.09.2008 17:33:24
|

Przedszkolak

Postów: 4
Data rejestracji: 23.12.2006 19:49
|
Data: 01/09/2008 17:30
Dodane przez: mawi
Wymiary: x pikseli
Rozmiar pliku: Bytes
Komentarzy: 0
Ocena: Brak
Liczba obejrzeń: 0
U mnie pisze, że dodało a nie widać fotek  |
|
|
|
bartek124 |
Dodany dnia 01.09.2008 17:50:00
|

Weteran

Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
@mawi spróbuj pliku z załącznika Pieki. Masz jaki stan safe_mode?
@piterus pewnie dlatego, że jeśli masz aktywną funkcję rename, skrypt przenosi zdjęcia a nie je kopiuje. Do tego potrzeba chmodów 777.
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
_damik |
Dodany dnia 02.09.2008 17:52:11
|

Przedszkolak

Postów: 16
Data rejestracji: 02.09.2008 17:48
|
Witam.
Chciałem zastosować podany wyżej skrypt.
Zainstalowana mam wersje php fusion 7. Pobrałem pliki umieszczone przez bartek124 i wrzuciłem je na serwer.
Pozniej do folderu photo_upload dodałem fotki.
I teraz gdy wpisuje adres www.xxx./photogal... pisze
Galeria zdjęć
Brak udostępnionych galerii zdjęć.
Czy wszystko dobrze zrobiłem? Bo jak na razie sie ucze.
Edytowane przez szymon dnia 04.09.2008 18:18:51
|
|
|
|
bartek124 |
Dodany dnia 02.09.2008 18:02:53
|

Weteran

Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Yyy, stworzyłeś w ogole galerie?
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
_damik |
Dodany dnia 02.09.2008 19:09:45
|

Przedszkolak

Postów: 16
Data rejestracji: 02.09.2008 17:48
|
Jak powinienem to zrobić zeby działało?
Do tej pory zrobiłem:
1. Zainstalowałem poprawnie php fusion 7.
2. Wgrałem pliki z archiwum uzytkownika bartek124.
I tyle.
Z góry dziękuję za pomoc.
Edytowane przez szymon dnia 04.09.2008 18:19:25
|
|
|
|
bartek124 |
Dodany dnia 02.09.2008 19:26:18
|

Weteran

Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
No to teraz STWÓRZ nowy album i potem wejdź do niego w Panelu Administracyjnym.
Wgraj folder ze zdjęciami do katalogu photo_upload i w Panelu Administracyjnym zaznacz go, potem kliknij Dodaj.
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
_damik |
Dodany dnia 02.09.2008 19:54:38
|

Przedszkolak

Postów: 16
Data rejestracji: 02.09.2008 17:48
|
Fakt, nie zauważyłem tego ze można w ten sposób wchodzić do albumu.
Skrypt działa bardzo ładnie.
Wielkie dzięki
Edytowane przez _damik dnia 02.09.2008 19:57:01
|
|
|
|
le1t00 |
Dodany dnia 04.09.2008 23:25:59
|

Przedszkolak

Postów: 2
Data rejestracji: 05.12.2007 18:13
|
Da się jakoś zrobić by pobierało nazwy zdjęć z plików wrzuconych?? bo jak mam znak wodny to troszkę irytuje mnie np 1wycieczka2008 itp... |
|
|
|
bartek124 |
Dodany dnia 05.09.2008 07:12:23
|

Weteran

Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Hmm, to pobiera nazwy z nazw zdjęć...
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
le1t00 |
Dodany dnia 05.09.2008 14:54:06
|

Przedszkolak

Postów: 2
Data rejestracji: 05.12.2007 18:13
|
Dziwne bo za pierwszym razem pliki miałem ponumerowane od 1- 96 bo tylko tyle wrzuciło za jednym razem a nazwe folderu zdjecia, a w galerii zobaczyłem 1zdjecia,2zdjecia itp.
Teraz wrzuciałem jeszcze raz ponazywane to zrobiło tak jak chciałem. |
|
|
|
pocisk |
Dodany dnia 15.09.2008 21:05:12
|

Przedszkolak

Postów: 12
Data rejestracji: 15.09.2008 18:46
|
Po wrzuceniu plikow zameszczonych w zalaczniku z postu wyzej stronka wywala mi blad:
Parse error: syntax error, unexpected T_ELSE in /home/pocisk/public_html/administration/photos.php on line 585
Dziwna sprawa bo ja nic nei ingerowalem w pliki a wyglada ze jakas petla nie jest zamknieta jak sie nie myle :)
Mozecie mi podpowieddzec gdzie jest balad?
Pozdrawiam
pocisk
Edytowane przez Pieka dnia 19.11.2010 23:30:47
|
|
|
|
Pieka |
Dodany dnia 15.09.2008 21:13:33
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Przede wszystkim kolego drogi, kody, w tym rowniez bledow wstawiamy w tag code.
Wracajac do tematu, jak sam wspomniales brakuje zamkniecia, czyli wychodzi na to, ze masz niepelny plik. Nadpisz go i sprawdz jeszcze raz. Napisz przy okazji, z ktorego zalacznika, bo sa dwa.
Edytowane przez Pieka dnia 15.09.2008 21:16:33
Jestem jaki jestem 
|
|
|
|
bartek124 |
Dodany dnia 15.09.2008 21:16:00
|

Weteran

Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Ten plik przed wrzuceniem był sprawdzany i działa, teraz zassałem i też działa.
Nie pomagam na komunikatorach oraz PW!
|
|
|