Php photo gallery TWG | JFUploader | TWG Flash upload | WFU | Forum

Get help for TinyWebGallery, the best image gallery. The forum is also home for the Joomla JFUploader, TWG Flash Uploader and the Wordpress flash uploader.
It is currently 23. Nov 2024, 00:36

This forum is readonly now. Please use the new forum if you don't find the answer to your question here. The new forum is at https://www.tinywebgallery.com/blog/forum/


All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 30 posts ]  Go to page Previous  1, 2
Author Message
 Post subject:
PostPosted: 19. Aug 2008, 20:50 
Offline

Joined: 18. Aug 2008, 10:41
Posts: 17
Die Funktion opendir liefert false, wenn sich der SymLink der mit mklink erstellt wurde (Beispiel: mklink /D "LinkName" "x:\Quelle" - wobei x:\ wiederum auf \\NAS\Sharename zeigt; uebrigens kann man auch den SymLink so direkt erzeugen, aber Ergebnis von opendir bleibt auch false), sich auf eine Verzeichnis bezieht das auf der NAS liegt.

Liegt das Verzeichnis dagegen auf der lokalen Platte, dann funktioniert der mit mklink erzeugte Symlink auch mit opendir, das liefert dann naemlich den handle darauf.

Ich habe gegoogelt nach opendir und mklink und nach einigen anderen möglichen Kombinationen, aber nichts relevantes gefunden.

Möglicherweise besteht das Problem darin, dass ich ja lokal ein Windows Vista mit NTFS habe und der SymLink auf eine von Linux verwaltete NAS-Platte zeigt und schlichtweg opendir dies nicht kann.

Irgendein Lösungsvorschlag oder ist hier dann doch Ende?

LG Claudio


Top
 Profile  
 
 Post subject:
PostPosted: 19. Aug 2008, 20:52 
Offline
Site Admin
User avatar

Joined: 1. Aug 2005, 12:53
Posts: 11232
was mich wundert ist, dass es in TWG geht und in der einen Funktion nicht ...

/Michael


Top
 Profile  
 
 Post subject:
PostPosted: 19. Aug 2008, 21:26 
Offline

Joined: 18. Aug 2008, 10:41
Posts: 17
....ich glaube jetzt ist was durcheinander:-(
Wenn ein Windows-SymLink mittels mklink erstellt wurde, ist es egal ob Front- oder Backend, in beiden Fällen liefert opendir false und es wird nichts angezeigt...also von daher verhält es sich schon alles korrekt, mit Ausnahme eben, das opendir ein generelles Problem hat, wenn das Ziel des SymLinks (welches mit mklink erstellt und nicht mit ln unter linux) ein Ordner im Netzt ist und somit nicht auf der lokalen Platte.

Man müsste nun eigentlich im Coding von opendir schauen.....doch wie das?? Leider gibt es auch keine gescheiten Hinweise, was opendir denn nun nicht passt.....also ich glaube Du hast bestimmt auch keine Lösung parat und ich breche jetzt an dieser Stelle ab, denke hier muss beim PHP-Core-Team das Problem eingelastet werden...es sei denn, Du möchtest, dass ich noch etwas untersuche oder Du hast vielleicht doch noch einen Tipp/Workaround/Lösungsvorscholag:-)

LG Claudio

P.S. is_dir liefert uebrigens true:-) aber opendir will dennoch kein handle zurueckliefern:-(


Top
 Profile  
 
 Post subject:
PostPosted: 19. Aug 2008, 22:23 
Offline
Site Admin
User avatar

Joined: 1. Aug 2005, 12:53
Posts: 11232
Hast du schon

http://technet.microsoft.com/de-de/sysi ... 96768.aspx

versucht? Wusste gar nicht, dass microsoft das gekauft hat ...


Top
 Profile  
 
 Post subject:
PostPosted: 19. Aug 2008, 22:36 
Offline

Joined: 18. Aug 2008, 10:41
Posts: 17
mklink gibt es seit und fuer Windows Vista, mklink macht genau das was Du unter junction gefunden hast, wenn man den Parameter /J übergibt.

MKLINK [[/D] | [/H] | [/J]] Verknüpfung Ziel

/D Erstellt eine symbolische Verknüpfung für ein Verzeichis.
Standardmäßig wird eine symbolische Verknüpfung für
eine Datei erstellt.
/H Erstellt eine feste Verknüpfung anstelle einer
symbolischen Verknüpfung.
/J Erstellt eine Verzeichnisverbindung.
Verknüpfung Gibt den Namen für die symbolischen Verknüpfung an.
Ziel Gibt den Pfad (relativ oder absolut) an, auf den die
neue Verknüpfung verweist.

Ich habe es bereits mit /D und mit /J und auch mit /D /J probiert!

/D ist das was eigentlich den tatsächlichen SymLink unter Linux ähnelt. Das Ergebnis ist immer das gleiche, egal welche Einstellung/Kombination ich verwende...der Zugriff auf den Inhalt der unter dem SymLink zu finden ist funktioniert, wenn der Inhalt auf einer lokalen Platte liegt aber funktioniert nicht, wenn der Inhalt auf der externen NAS-Platte (Netzlaufwerk) liegt.

LG Claudio


Top
 Profile  
 
 Post subject:
PostPosted: 19. Aug 2008, 22:46 
Offline
Site Admin
User avatar

Joined: 1. Aug 2005, 12:53
Posts: 11232
Dann kann ich denke an der Stelle nicht mehr viel machen.

/Michael


Top
 Profile  
 
 Post subject:
PostPosted: 19. Aug 2008, 23:09 
Offline

Joined: 18. Aug 2008, 10:41
Posts: 17
Ja, ich weiss.....es liegt definitiv an der opendir funktion, die liefert eben kein handle wenn der SymLink mit mklink erstellt auf ein Netzshare zugreift und das ist php core intern.

Leider finde ich auch keinerlei Alternativ-Möglichkeit wie ich sonst den Cache extern erstellen koennte..einzige Möglichkeit wäre den gesamten Bilderbestand auf die lokale Platte zu kopieren...doch das ist nicht möglich da es sich wie erwähnt um mehrere Hundert Gigs handelt und die lokale Platte deutlich weniger Speicherplatz hat. Der Prozesor der NAS ist zu schwach also bliebe nur noch die Möglichkeit ein lokales Linux zu installieren und von dort einen SymLink zur NAS zu erstellen, das sollte funktionieren...Betonung liegt auf "sollte":-)

Danke und LG Claudio


Top
 Profile  
 
 Post subject:
PostPosted: 19. Aug 2008, 23:51 
Offline

Joined: 18. Aug 2008, 10:41
Posts: 17
Könnte evtl. die Funktion glob(...) noch weiterhelfen?

Ich fand die Funktion glob(...) z.B. unter: www . janssen-s1 . de/neu/forum/forum_posts.asp?TID=37&get=last

Kann man die anstelle von opendir verwednen?

LG Claudio


Top
 Profile  
 
 Post subject:
PostPosted: 19. Aug 2008, 23:55 
Offline
Site Admin
User avatar

Joined: 1. Aug 2005, 12:53
Posts: 11232
könnte man versuchen. mit * als pattern. Ich verwende das zum cache aufräumen. Kannst ja an der stelle, die den cache generiert versuchen.

/Michael


Top
 Profile  
 
 Post subject:
PostPosted: 20. Aug 2008, 08:49 
Offline

Joined: 18. Aug 2008, 10:41
Posts: 17
$list = glob($file_dir.'*');
Das liefert das "../pictures" in $list[0], wobei pictures bereits ein mit mklink erzeugter SymLink ist...also evtl. könnte es damit tatsächlich gehen.

Doch für die weitere Bearbeitung wird nun ein handle benötigt damit die Funktion gen_cache_body und die Funktionen die es aufruft funktionieren.

Wie kann ich das erhalten?


Top
 Profile  
 
 Post subject:
PostPosted: 20. Aug 2008, 08:55 
Offline
Site Admin
User avatar

Joined: 1. Aug 2005, 12:53
Posts: 11232
gen_cache_body wird kein handle übergeben. Nur das aktuelle Verzeichnis.

/Michael


Top
 Profile  
 
 Post subject:
PostPosted: 20. Aug 2008, 09:05 
Offline

Joined: 18. Aug 2008, 10:41
Posts: 17
innerhalb von gen_cache_body liefert opendir ein handle, dass dann fuer die weitere Bearbeitung an diversen Stellen benutzt wird.
Ich hatte nun anstelle von opendir eben glob verwendet...bekanntermassen kann ja opendir nicht verwendet werden, da es kein handle liefert wenn ein Verzeichnis bzw. SymLink auf ein Netzlaufwerk zeigt.
Gibt es eine andere Möglichkeit anstelle von opendir ein handle zu erhalten?


Top
 Profile  
 
 Post subject:
PostPosted: 20. Aug 2008, 09:14 
Offline
Site Admin
User avatar

Joined: 1. Aug 2005, 12:53
Posts: 11232
Das wird nur gebraucht, um die Dateiliste zu holen. Und die hast du ja bei glob schon.

Die Funktion von mir kann noch einiges mehr wie z.B. auch ein Dateilisting von einem externen Rechner holen usw. das brauchst du ja dann nicht.

/Michael


Top
 Profile  
 
 Post subject:
PostPosted: 22. Aug 2008, 10:24 
Offline

Joined: 18. Aug 2008, 10:41
Posts: 17
Ich habe es nun aufgegeben, opendir kommt einfach unter Vista nicht mit mklink klar, wenn diese auf ein Netzlaufwerk verweist. Windows-Anwendungen selsbt haben mit solch einem SymLink kein Problem, die opendir Funktion von PHP leider schon.

Gleiches gilt wenn man Windows XP einsetzt und hier das junction Tool verwendet. Es gibt zwar ein Alternativ-Tool von ZDNET (C. Hochstaetter), dass auch unter XP mklink heisst jedoch kann diese den Parameter /D gar nicht anwenden, da angeblich das Dateisystem dafuer nicht geeignet ist (ich vermute mal, unter Vista wuerde er den Parameter erlauben) und man daher nur /J fuer eine junction verwenden kann. Aber auch hier hat opendir dann Probleme und kann nicht damit umgehen, selbst ein "subst" befehl scheitert mit opendir (obwohl der Ordner der mit einen Laufwerksbuchstaben versehen ist auf einen Bereich zeigt der auf der gleichen Platte ist).

Ich habe es jetzt also anders gemacht und den gesamten Datenbestand von zig Gigs auf eine lokale Platte kopiert und twg dort unter WAMP installiert und generiere nun den cache. Äusserst umständlich, aber was will man machen:-(

Wollte nur noch mal den Letztstand bekannt geben, dann können sich andere wenigstens die Versuche sparen und gleich so vorgehen, wenn sie das gleiche Problem haben.

Auf alle Fälle aber vielen Dank für die Unterstützung, war allemal ein Versuch wert:-)

Liebe Grüße - Claudio


Top
 Profile  
 
 Post subject:
PostPosted: 22. Aug 2008, 10:30 
Offline
Site Admin
User avatar

Joined: 1. Aug 2005, 12:53
Posts: 11232
o.k.

Auch die Umstellung auf glob hätte man überall machen müssen, weil ja nicht nur der generierte Code geändert werden hätte müssen sondern auch die Gallerie selbst, weil das Javascript ja nur die Generierung anstößt.

/Michael


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 30 posts ]  Go to page Previous  1, 2

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 27 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
powered by phpbb | Datenschutz/ Privacy policy