PDA

Zobacz pełną wersję : JP Submission , Ja submit , ez cz submit i inne - obrazki



bloody
06-07-2008, 09:54
Po uploadzie przez użytkownika obrazka na przez któryś z tych dodatków zostaje on zapisany w jednym folderze /users. Powoduje to pewne problemy - jeśli ktoś wrzuci grafikę z taką samą nazwą - zostaje ona nadpisana. Autorzy komponentu chyba o tym nie pomyśleli :-/

Za zapis obrazków są odpowiedzialne linijki od 201 do 251 w pliku jpsubmissionary.php


//introtext image

$Nameimage1 = strtolower($_FILES['image1']['name']);

$Nameimage2 = strtolower($_FILES['image2']['name']);

if ($_POST['caption1'] != '') {

$row->images="users/".$Nameimage1."|right||1|".$_POST['caption1']."|bottom||";

} else

{

$row->images="users/".$Nameimage1."|right||1||";

}

$addmos = "{mosimage}";

if ($Nameimage1!=""){

$row->introtext=$addmos.$row->introtext; }Oraz okolice 610 lini

#set upload dirs

$uploadphotodir = $mosConfig_absolute_path."/images/stories/users/";

$tempdir = $mosConfig_absolute_path."/images/temp/";

Wpadłem na pomysł modyfikowania nazw uploadowanych plików, jednak implementacja kodowania MD5 przewyższa moje możliwości. Może więc upload każdego pliku do katalogu autora - tylko katalogi nie są utworzone, i nie wiem czy będzie to działać - czy automatycznie utworzy katalog.
Po ścieżce umieszczenia pliku dodać " $my->name "


$row->images="users/$my->name"
( nie wiem czy ta komenda umieszczona jest poprawnie)Byłbym wdzięczny za wszelką pomoc i weryfikację toku myślenia



Obszedłem problem - każdy kto dodaje zdjęcie ma je specjalnie nazywać - "dzień-miesiąc-rok-godzina-nazwa". Znalazłem ninja submit w którym miało zmieniać nazwy plików w taki własnie sposób, ale niestety ta opcja właśnie nie działa :-/ Nie wiem czy wynika to z tego że mam zainstalowany jeszcze JP submission.

lt38
10-07-2008, 11:38
Ale to nie rozwiązuje problemu do końca, bo użytkownik może również wrzucić do swojego katalogu plik o tej samej nazwie :). Można dodatkowo albo zamiennie dodawać jakiś unikalny znacznik, który potem dodawany jest do nazwy pliku. Np. można wykorzystać to: date (U). To nie będzie się powtarzało, więc np. na początku kodu sprawdzamy czy istnieje np. zmienna $przedrostek. Jeśli nie to: $przedrostek = date (U);
I teraz jest unikalny przedrostek, który będzie trzeba dodadać do nazwy zapisywanej w bazie oraz nazwy zapisywanego na serwerze pliku czyli coś takiego np.: $Nameimage1 = $przedrostek.$Nameimage1;
W takiej sytuacji niewielkie są szanse, że nazwy się zdublują, a jak jeszcze będzie plik zapisywany w katalogu danego użytkownika, to dodatkowo będzie porządek :).

bloody
10-07-2008, 11:46
No wydaje się proste, tylko dlaczego żadna grupa bawiąca się w komponenty nie rozwiązała tego problemu ?

lt38
11-07-2008, 16:57
Bo może nikomu to nie było potrzebne? A może po prostu nikt tym się nie chwalił?
W każdym bądź razie nie teoretyzuję - sprawdzone i działa :).