[GastForen Programmierung/Entwicklung PHP und MySQL Datei zum downloaden auslesen und Dateigrösse ausgeben

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Datei zum downloaden auslesen und Dateigrösse ausgeben

Roly
Beiträge gesamt: 77

3. Mär 2008, 15:15
Beitrag # 1 von 18
Bewertung:
(5821 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Forum

Ich möchte auf einer Seite verschiedene Dateien zum download anbieten. Diese Liste wird sich laufend ergänzen und die Files lade ich über mein FTP-Programm hoch. Soweit so gut... damit ich die Liste nicht immer manuell ergänzen muss, benutze ich dieses Script:

<?php
$ordner = "download/anleitungen/";
$handle=opendir($ordner);
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
echo "<a href=\"$ordner" . $file . "\" target=\"urlTarget\" onClick=\"onOpenWindow(this.href,this.target);return(false);\">" . $file . " </a><br /><br />";
}
}
closedir($handle);
?>

Das funktioniert auch sehr gut! Jetzt wäre es nur noch schön, wenn man auch sehen könnte, wie gross die entsprechende Datei ist... da komm ich nicht ganz weiter! Könnt ihr mir da helfen? :-)

Besten Dank für Eure Hilfe!

Gruess Roly
X

Datei zum downloaden auslesen und Dateigrösse ausgeben

Intermedia
Beiträge gesamt: 1287

3. Mär 2008, 15:20
Beitrag # 2 von 18
Beitrag ID: #339869
Bewertung:
(5815 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

sieh dir mal filesize ( string $filename ) an.

Gruß Sven


http://www.aurahysil.de?hds Mit Aurahysil Freizeit schaffen - Beschichtungen der besonderen Art - http://www.intermedia-bg.de?hds INTERMEDIA bürogemeinschaft


als Antwort auf: [#339868]

Datei zum downloaden auslesen und Dateigrösse ausgeben

Roly
Beiträge gesamt: 77

3. Mär 2008, 15:39
Beitrag # 3 von 18
Beitrag ID: #339872
Bewertung:
(5811 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank erstmals für die prompte Antwort! :-)

hab mir den Eintrag mal angeschaut... wird vermutlich an mir liegen dass es noch nicht funktioniert! Hab damit noch nicht so grosse Erfahrung... *gg*

Ich hab mal versucht, zu kombinieren... das sieht dann folgendermassen aus:
<?php
$ordner = "download/pdf-pic-settings/";
$handle=opendir($ordner);
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
echo "<a href=\"$ordner" . $file . "\" target=\"urlTarget\" onClick=\"onOpenWindow(this.href,this.target);return(false);\">" . $file . " </a>";
echo "$id = filesize ( $file )";
echo "'Größe der Datei ' . $file . ': ' . $id<br />";
}
}
closedir($handle);
?>
nur funktioniert es nicht ganz... es werden nur unausgefüllte Variablen ausgegeben!

= filesize ( )'Größe der Datei ' . . ': ' .

so sieht jetzt die Ausgabe aus... :-/


als Antwort auf: [#339869]

Datei zum downloaden auslesen und Dateigrösse ausgeben

Intermedia
Beiträge gesamt: 1287

3. Mär 2008, 15:55
Beitrag # 4 von 18
Beitrag ID: #339876
Bewertung:
(5803 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

du solltest mal den Pfad zur Datei mit angeben.

echo "$id = filesize ( $file )";
das ist irgendwie Quatsch, in der Variable $id ist die Dateigröße in Byte enthalten.


Gruß Sven


http://www.aurahysil.de?hds Mit Aurahysil Freizeit schaffen - Beschichtungen der besonderen Art - http://www.intermedia-bg.de?hds INTERMEDIA bürogemeinschaft


als Antwort auf: [#339872]

Datei zum downloaden auslesen und Dateigrösse ausgeben

minou
Beiträge gesamt: 135

3. Mär 2008, 18:14
Beitrag # 5 von 18
Beitrag ID: #339891
Bewertung:
(5784 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,


Code
<?php  
$ordner = "download/pdf-pic-settings/";
$handle = opendir($ordner);

while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
echo '<a href="' . $ordner . "/" . $file . '"' . 'target="urlTarget" onClick="onOpenWindow(this.href,this.target);return(false);">' . $file . '</a>';
$id = filesize ( $file )";
echo "Größe der Datei " . $file . ": " . $id . "<br />";
}
}
closedir($handle);


Ohne es getestet zu haben, das sollte es in etwa sein, was das PHP angeht. Bei PHP musst du den Gesamten String nicht in Anführungszeichen einbinden, denn der Punkt heisst nicht anderes als dass wieder ein echo ausgegeben würde. Also steht jeder Teilstring für sich und muss für sich abgeschlossen sein.
Bei Javascript ist das glaub ich etwas anders, da wird die Gesamtausgabe eingefasst.

Gruss

minou


als Antwort auf: [#339868]

Datei zum downloaden auslesen und Dateigrösse ausgeben

Intermedia
Beiträge gesamt: 1287

3. Mär 2008, 18:38
Beitrag # 6 von 18
Beitrag ID: #339892
Bewertung:
(5781 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ minou ]
Ohne es getestet zu haben,


hättest du mal machen sollen, das ist das Ergebnis: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\........... on line 9

;-)))

$id = filesize ( $file )";

Hier ist ein " zu viel, dann fehlt immernoch das Verzeichnis.

Gruß Sven


http://www.aurahysil.de?hds Mit Aurahysil Freizeit schaffen - Beschichtungen der besonderen Art - http://www.intermedia-bg.de?hds INTERMEDIA bürogemeinschaft


als Antwort auf: [#339891]

Datei zum downloaden auslesen und Dateigrösse ausgeben

Roly
Beiträge gesamt: 77

4. Mär 2008, 00:48
Beitrag # 7 von 18
Beitrag ID: #339929
Bewertung:
(5762 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Besten Dank für Eure Beiträge... :)

hab das gleich mal probiert... auf meinem Server resultiert dabei der Fehler: "Warning: filesize() [function.filesize]: stat failed for File XY"...

Ist das ein Problem der Datei-Rechte?!

Der Code sieht nun so aus:

<?php
$ordner = "download/pdf-pic-settings/";
$handle = opendir($ordner);

while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
echo '<a href="' . $ordner . "/" . $file . '"' . 'target="urlTarget" onClick="onOpenWindow(this.href,this.target);return(false);">' . $file . '</a>';
$id = filesize ( $file );
echo "Grösse der Datei " . $file . ": " . $id . "<br />";
}
}
closedir($handle);?>


als Antwort auf: [#339892]

Datei zum downloaden auslesen und Dateigrösse ausgeben

Bitfilme
Beiträge gesamt: 264

4. Mär 2008, 01:31
Beitrag # 8 von 18
Beitrag ID: #339932
Bewertung:
(5748 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Siehe http://ch2.php.net/readdir
Code
<?php 
// Beachten Sie, dass !== vor 4.0.0-RC2 nicht verfuegbar war

if ($handle = opendir('/path/to/files')) {
echo "Directory handle: $handle\n";
echo "Files:\n";

/* Das ist der korrekte Weg, ein Verzeichnis zu durchlaufen. */
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}

/* Dies ist der FALSCHE Weg, ein Verzeichnis zu durchlaufen. */
while ($file = readdir($handle)) {
echo "$file\n";
}

closedir($handle);
}
?>


Das ist die Lösung für Filesize
filesize($ordner.$file); // So wird auch die Datei gefunden

$ordner = "download/pdf-pic-settings/"; // Hier / schon dabei

echo '<a href="' . $ordner . "/" . $file . '"' target.... Falsch!
Gruss Bitfilme


als Antwort auf: [#339929]

Datei zum downloaden auslesen und Dateigrösse ausgeben

Roly
Beiträge gesamt: 77

4. Mär 2008, 09:26
Beitrag # 9 von 18
Beitrag ID: #339944
Bewertung:
(5710 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ok, hab den Code nochmals angepasst... Fehlermeldungen sind zwar weg, aber eine Ausgabe der Datei-Grösse hat es auch nicht... :-/

Code
<?php  
$ordner = "download";
if ($handle = opendir('download/pdf-pic-settings'))
filesize($ordner.$file);
$id = filesize ( $file );
{
while (false !== ($file = readdir($handle)))
if ($file != "." && $file != ".."){
echo "<a href=\"$ordner/pdf-pic-settings/" . $file . "\">" . $file . "</a> | " . $id . "<br />";
}
closedir($handle);
}
?>


Mit dem echo "<a href=... möchte ich ja einen Link zum Downloaden der betreffenden Datei anbieten...


als Antwort auf: [#339932]

Datei zum downloaden auslesen und Dateigrösse ausgeben

flobaer
Beiträge gesamt: 317

4. Mär 2008, 09:44
Beitrag # 10 von 18
Beitrag ID: #339946
Bewertung:
(5699 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Roly,

vielleicht solltest du die Größenberechnung auch in die Schleife schreiben ;-)

Viele Grüße,
Florian


als Antwort auf: [#339944]

Datei zum downloaden auslesen und Dateigrösse ausgeben

Intermedia
Beiträge gesamt: 1287

4. Mär 2008, 09:44
Beitrag # 11 von 18
Beitrag ID: #339947
Bewertung:
(5698 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

was soll den der Unsinn hier?
Code
filesize($ordner.$file);  
$id = filesize ( $file );


fällt dir nicht auf das die Variable $id so nicht richtig beschrieben werden kann?
Erstens ist es doppelt und zweitens fehlt immer noch der Pfad.

Und Florians Bemerkung kommt mit dazu. ;-)

Gruß Sven


http://www.aurahysil.de?hds Mit Aurahysil Freizeit schaffen - Beschichtungen der besonderen Art - http://www.intermedia-bg.de?hds INTERMEDIA bürogemeinschaft


als Antwort auf: [#339944]
(Dieser Beitrag wurde von Intermedia am 4. Mär 2008, 09:46 geändert)

Datei zum downloaden auslesen und Dateigrösse ausgeben

Roly
Beiträge gesamt: 77

4. Mär 2008, 09:47
Beitrag # 12 von 18
Beitrag ID: #339948
Bewertung:
(5696 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sorry, wie oben schon gesagt hab ich noch nicht viel Erfahrung mit PHP... :-(

wie wäre es denn richtig?


als Antwort auf: [#339947]

Datei zum downloaden auslesen und Dateigrösse ausgeben

minou
Beiträge gesamt: 135

4. Mär 2008, 11:03
Beitrag # 13 von 18
Beitrag ID: #339958
Bewertung:
(5662 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe dir hier eine getestete Lösung.
Du musst den Pfad mit deinem Pfad ersetzen und am Schluss das Slash nicht vergessen (um href Aufruf zusammenzusetzen).



Code
$verzeichnis = opendir("pfad/weiterer_pfad/'"); 

while (false !== ($file = readdir($verzeichnis))) {
if ($file != "." && $file !="..") {
echo "<a href=\"" . $verzeichnis . $file . '">' . $file . ' </a>-- Grösse der Datei: ' . filesize($file) . "bytes<br />";
}
}
closedir($verzeichnis);


achte bitte darauf, dass du in der ersten Zeile den gesamten Pfad eingibst.
Erklärung:
(".") ist der aktuelle Pfad...
("../" eine Ebene höher (z.B. c:\files zu c:\)

Achte auch darauf, dass am ende des Pfades in opendir ein Slash steht, für die Ausgabe im href.

Gruss und viel Spass damit :-)

minou

P.S. das mit dem false in der while Schleife kannst du dir auch schenken, die while Schleife prüft von sich aus das Auftreten von false und beendet dann die Schleife.
Man schreibt ja auch while($a < 10) dann müsste es nach gewissen Leuten so heissen while(false !== $a < 10)...


als Antwort auf: [#339948]

Datei zum downloaden auslesen und Dateigrösse ausgeben

minou
Beiträge gesamt: 135

4. Mär 2008, 11:38
Beitrag # 14 von 18
Beitrag ID: #339963
Bewertung:
(5655 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Antwort auf [ minou ] Man schreibt ja auch while($a < 10) dann müsste es ja so heissen while(false !== $a < 10)...


entschuldigt bitte die falsche Aussage. Die while Schleife wird natürlich bei eintreten von true beendet. Also wenn eine Bedingung wahr wird. Trotzdem ist bei while das false !== ... ja eigentlich die Kernfunktion an sich, while hat ja genau diese Funktion, da bringt es doch nichts wenn man nochmal auf false !== ... prüft (also true == ...).

Sorry und Gruss

minou


als Antwort auf: [#339958]

Datei zum downloaden auslesen und Dateigrösse ausgeben

Roly
Beiträge gesamt: 77

4. Mär 2008, 15:01
Beitrag # 15 von 18
Beitrag ID: #339996
Bewertung:
(5638 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ok, wir sind auf dem richtigen Weg... :)

Bloss eines erstaunt mich: wenn ich bei opendir nur einen "." setze, wird mir eine ganze Liste von Files und Folders ausgegeben... was für mich auch logisch ist! Wenn ich jetzt eine Ebene tiefer gehe in den Folder "content/" so wird jetzt nur noch einen Folder images angezeigt, obwohl da noch viel mehr rum liegt... gehe ich noch eine Ebene tiefer in den Folder "content/download/" wird eine Fehler-Meldung ausgegeben: Warning: opendir(content/download/) [function.opendir]: failed to open dir: Invalid argument in c:\Inetpub\wwwroot\thoma-druck\content\download\con_download.php on line 37

aber ansonsten funktioniert jetzt die Grössen-Ausgaben mit den Files die im Folder "content" liegen... Nja, immerhin! ;-)

der nun aktualisierte Code:

Code
<?php 
$verzeichnis = opendir(".");

while (false !== ($file = readdir($verzeichnis))) {
if ($file != "." && $file !="..") {
echo "<a href=\"" . $verzeichnis . $file . '">' . $file . ' </a>-- ' . filesize($file) . "bytes<br /><br />";
}
}
closedir($verzeichnis); ?>



als Antwort auf: [#339963]
(Dieser Beitrag wurde von Roly am 4. Mär 2008, 15:11 geändert)
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
26.11.2020

Wie schafft man einen gleichbleibenden Farbeindruck im Druck und elektronischer Ausgabe? Peter Jäger erklärt wie es geht!

Zoom Meeting
Donnerstag, 26. Nov. 2020, 19.00 - 21.01 Uhr

Vortrag

Agenda: Vorstellung Verein freieFarbe e.V. und pro2media gmbh Was verlangt der Kunde? Gleichbleibende Farbe über sämtliche Ausgaben? Für welche Ausgaben (Offset- oder Digitaldruck, Kopiersysteme, elektronische Ausgaben) Umgang mit Farben bisher: mehrere Logos- und Bildvarianten Logo Entwicklung heute: anhand pro2media gmbh, ausgehend von nur einer Logovariante Crossmediale Farben bestimmen Einsatz von Hilfsmitteln wie digitaler- und gedruckter Farbatlas und Gamutmap.com Sauberes Farben CD erstellen mit eindeutig definierten Werten Umsetzung in den Softwaren (Word, FileMaker, InDesign, Illustrator, Web CMS, OpenSource usw.) Verarbeitung in den Druckereien (anhand Callas pdfToolbox)

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

idugs66.eventbrite.com

Grafik- und Bilddaten crossmedial aufbereiten
Veranstaltungen
30.11.2020 - 01.12.2020

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Montag, 30. Nov. 2020, 08.30 Uhr - Dienstag, 01. Dez. 2020, 17.00 Uhr

Kurs

Im Kurs lernen Sie die Schritte vom Import des Rohmaterials bis zum fertig exportierten Clip kennen. Dazu zählen die Materialverwaltung, das Trimmen für Roh- und Feinschnitt, Blenden, Titel und Effekte und eine Übersicht über die wichtigsten Formate.

Preis: CHF 1'700.-
Dauer: 2 Tage

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/video-und-audio-publishing/adobe-premiere-pro-cc/kurs-adobe-premiere-pro-cc-basic

Neuste Foreneinträge


Script um 2 Items von CC Library auf eine Seite zu plazieren

Quellenangaben von Bildern innerhalb des Dokumentes pflegen

Anpassung von Scriptfunktion auf Bleedbox

Schrift in Form umwandeln

Freitagsangebote für die 3 Programme von Serif

Zwei Fragen zur Tabelle

Hyperlink aktualisierung nach Dateiumbenennung

Transparente Klebefolie bedrucken

Externe Verlinkung in Indesign ohne www

Glyphen-Salat
medienjobs