Seite 1 von 1

Automatisiert PDF Veröffentlichen

Verfasst: 14.05.2009, 14:22
von workershop
Hi,

kennt jemand ein Script, welches man auf eine bestehende Unterseite einbinden kann, wo automatisch PDFs als Links angezeigt werden, welche in regelmäsigen Abständen per Uploadscript, in eine Verzeichnis des Servers hochgeladen werden?

Es geht nicht anders, weil der Kunde null Anhnung von FTP etc. hat, und auch keine weitere Betreuung wünscht. Das einzige was er kann ist per Uploadscript etwas hochladen, und es sollte dan automatisch verlinkt werden. Hier ist ein Beispiel, wie es ausschauen sollte, halt nur nicht als extra Seite, sondern einfach Das Aktuelle Datum mit dem verlinkten pdf: www.walendy-walther.de/index.php?m=2&s=0

Verfasst:
von

Verfasst: 14.05.2009, 14:49
von chrizz
kenn derzeit nichts, aber du kannst doch den Inhalt des Verzeichnis, wo dein Uploadscript die PDFs hinspeichert per PHP auslesen und die Links automatisch erstellen lassen...

Code: Alles auswählen

<?
$handle=opendir&#40;'./bilder/gallerie/'&#41;;
while &#40;$file = readdir &#40;$handle&#41;&#41; &#123;
if &#40;$file != "." && $file != ".."&#41; &#123;
echo $file;
&#125;
&#125;
closedir&#40;$handle&#41;;
?>

Verfasst: 14.05.2009, 14:51
von MrTunes

Code: Alles auswählen

<?php
if &#40;$handle = opendir&#40;'../pdfs/'&#41;&#41; &#123;
    while &#40;false !== &#40;$file = readdir&#40;$handle&#41;&#41;&#41; &#123;
        if &#40;$file != "." && $file != ".."&#41; &#123;
            echo "<li><a href=\"".$file."\" >" .$file. "</a></li>\n";
        &#125;
    &#125;
    closedir&#40;$handle&#41;;
&#125;
?>

Verfasst:
von

Verfasst: 14.05.2009, 17:30
von workershop
Vielen Dank für Eure Hilfe :-)

Verfasst: 22.07.2009, 00:28
von workershop
MrTunes hat geschrieben:

Code: Alles auswählen

<?php
if &#40;$handle = opendir&#40;'../pdfs/'&#41;&#41; &#123;
    while &#40;false !== &#40;$file = readdir&#40;$handle&#41;&#41;&#41; &#123;
        if &#40;$file != "." && $file != ".."&#41; &#123;
            echo "<li><a href="".$file."" >" .$file. "</a></li>\n";
        &#125;
    &#125;
    closedir&#40;$handle&#41;;
&#125;
?>
Ich habe doch noch eine Frage. Er zeigt alle Dateien von alt nach neu an, also von zuerst hochgeladenen bis zuletzt hochgeladenen an. Wie kann ich die PDFs aber genau andersrum anzeigen?

Die Dateien werden zur Zeit so angezeigt:
Monatsbericht_Juli_2009.pdf
Monatsbericht_August_2009.pdf
Monatsbericht_September_2009.pdf

Verfasst: 22.07.2009, 07:27
von mgutt
Schau Dir glob() an. Die Funktion ist einfacher und kann auch sortieren. Problem wird nur sein, dass Deine Dateien falsch betitelt sind. Du solltest bei sowas lieber so arbeiten:
2009-08-31-Dateiname.pdf

Oder wenn es viele pdfs werden (1000+), dann das ganze über Verzeichnisse.

Um Dein Problem zu lösen würde ich aber bei Deiner Funktion bleiben. Statt echo() baust Du Dir ein Array aus Dateiname => filemtime(). Das Array sortierst Du dann nach der Schleife und gibst es aus.

Verfasst: 22.07.2009, 14:31
von net(t)worker
ich würde dir empfehlen dir einen scriptzer zu suchen mit dem du zusammenarbeiten kannst, da es grob fahrlässig ist was du machst... also ohne wirkliche Ahnung von php für Kunden scripte erstellen... da bleibt die Sicherheit auf der Strecke.....

Re: Automatisiert PDF Veröffentlichen

Verfasst: 22.07.2009, 15:38
von gnark
workershop hat geschrieben:www.walendy-walther.de/index.php?m=2&s=0
[offtopic] Oh mein Gott, bei solchen IFrames muss ich weinen [/offtopic]

Sorry fürs offtopic :wink:

Verfasst: 22.07.2009, 18:54
von mgutt
Ich habe mir das noch mal überlegt. Also da wird es Probleme geben. Nämlich sobald er den Server-Anbieter wechselt und die Dateien neu hochlädt und das Datum verändert wurde. Dann hätten alle pdfs das gleiche Datum und in dem Moment würde der Bezug mit filemtime() nicht mehr funktionieren (steht für Erstellungsdatum). Man kann beim Umzug zwar darauf achten, dass die Daten erhalten bleiben, aber darauf achten die Wenigsten.

Daher müsste man es doch komplizierter gestalten und einen Textfilter für die Dateinamen realisieren, sofern der Kunde die Dateien nicht umbennennen möchte. Eine weitere Variante wäre, wenn er separate Textdateien mit den benötigen Datumsinformationen hochladen würde, aber das halte ich für etwas umständlich in der Bedienung.

Daher würde ich lieber so vorgehen:

Code: Alles auswählen

$months = array&#40;'januar' => '01', 'februar' => '02', 'märz' => '03', usw.&#41;;
$pdfs = array&#40;&#41;;
foreach &#40;glob&#40;'ordner/*.pdf'&#41; as $pdf&#41; &#123;
  $parts = explode&#40;'_', $pdf&#41;;
  $pdfs&#91;$pdf&#93; = basename&#40;$parts&#91;2&#93;&#41; . '-' . $month&#91;strtolower&#40;$parts&#91;1&#93;&#41;&#93;;
&#125;
rsort&#40;$pdfs&#41;;
print_r&#40;$pdfs&#41;;