PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausgabe kürzen


Auf der Mauer
29.06.2009, 14:17:13
Hallo,

ich bekomme bei folgendem Code den ganzen Ordnerinhalt angezeigt. Was muss ich machen damit nur die zuletzt hochgeladene Datei mit dem Vermerk "Erfolgreich hochgeladen" angezeigt wird?


$dp = @opendir($Speicherort);
if ($dp === FALSE)
{
mkdir('upload');
$dp = opendir($Speicherort);
}
while ($file = readdir($dp))
{
if (!preg_match('/^\.{1,2}/', $file))
{
echo $file;
echo ' (' . filesize("upload/$file") . ' Byte) - Erfolgreich hochgeladen!';
echo '<br>';
echo '<hr noshade size="2">';
}
}


Die Ausgabe sieht momentan so aus. (Genau so möchte ich es auch haben.)

P025161.jpg (150 kb) - Erfolgreich hochgeladen!
----------------------------------------------------------

Wenn ich allerdings noch eine Datei hochlade, dann taucht diese unter dem Strich auf usw. Das wird schnell unübersichtlich und zu lang. Daher habe ich auch schon versucht es irgendwie aus der Schleife herauszunehmen, hat aber auch icht geklappt, da fehlten dann die Angaben zu der Datei. (Name & Größe)

Ich hoffe mir kann hier jemand helfen.

Gruß
René

rarios
29.06.2009, 14:50:36
Du könntest z.B. die Zahl der Uploads als POST übertragen, dann per for-schleife bis zur letzten zahl nichts ausgeben, und bei dem letzten upload dann "Erfolgreich hochgeladen" ausgeben.

Auf der Mauer
29.06.2009, 15:33:30
Hallo Florian,

vielen Dank für deine Antwort, wenngleich mir noch nicht klar ist was du meinst.
Ließe sich nicht an der folgenden Stelle bestimmen wieviel ausgegeben wird?

}
while ($file = readdir($dp))
{
if (!preg_match('/^\.{1,2}/', $file))
{


Der Witz an dem Script ist doch das es ordnungsgemäß funktioniert und genau das macht was es soll. Warum hier allerdings sämtliche Dateien aus dem Uploadordner aufgelistet werden erschließt sich mir nicht da es für die Übersichtlichkeit nicht gerade förderlich ist.

Gruß
René

rarios
29.06.2009, 16:36:06
ist der quellcode in deinem 1. beitrag auch komplett?

Was möchtest Du genau?
Wird eine Datei hochgeladen und dann angezeigt, dass sie hochgeladen wurde?
Wozu willst Du den Ordner ausgeben?
Soll einfach nur die zuletzt hochgeladene Datei angezeigt werden, unabhängig davon, ob sie gerade hochgeladen wurde oder vor 2 Tagen?

Letzteres kannst Du wohl nur mit einem Protokoll lösen.
Also Textdateien oder MySQL z.B. ...

Auf der Mauer
29.06.2009, 17:34:06
Hallo Florian,

Nein der Quellcode im ersten Posting war nicht komplett. Ich habe nur die Stelle um die es geht ausgeschnitten.

Das Script sieht vor das nach dem erfolgreichen Hochladen eines Bildes der Dateiname und die Dateigröße angezeigt wird. Ich habe dort noch ein "Erfolgreich hochgeladen!" hintergesetzt. Bei dem ersten File war es ja auch noch in Ordnung, allerdings wenn ich weitere Dateien hochlade werden auch diese als erfolgreich hoch geladen angezeigt.

Eigentlich möchte ich das hier nur eine Datei mit Erfolgsmeldung steht und zwar jene welche als letztes hochgeladen wurde.

Notfalls, wenn es zu kompliziert ist nehme ich den Teil aus dem Script raus. Dann weiß ich aber nicht ob das hochladen funktioniert hat.

Ich möchte sowieso während des hochladens den Dateinamen ändern, dafür habe ich mir schon etwas geschrieben. Die Erstellung eines neuen Dateinamens geht jetzt schon voll automatisch. Ich kämpfe momentan aber mit der "rename" Funktion, auch das will nicht so wie ich will. Und der Pfad zum eigentlichen Bildordner stimmt auch noch nicht. Er will immer nur bis zu dem Ordner in dem auch die PHP Datei liegt, der Bilderordner liegt aber in einem anderen Ordner auf dem Webspace.

/users/Name/www/Administration/upload/

müste aber sein:

/users/Name/www/Bilder/

Da soll später auch noch eine Funktion rein, das von dem hochgeladenen Bild automatisch ein Thumbnail erstellt und abgespeichert wird. Ich denke das kriege ich aber mit Ausdauer und Glück irgendwie hin. Ich maches es einfach Stück für Stück und erfreue mich an dem was schon funktioniert.

Hier ist mal der gesamte Quelltext. Vielleicht ist es dann etwas einfacher zu verstehen.


<p style='font-size:10px;font-family:verdana'><b>DIE 3 ZULETZT HOCHGELADENEN BILDER</b></p>

<table>
<table align ="left" width="50% bgcolor="#DFDFDF" bordercolor="#DFDFDF" style="font-family:Verdana, Arial, serif; font-size:10px">

<?php

mysql_connect("localhost",
"Name","Passwort") or die
("Keine Verbindung moeglich");
mysql_select_db("Datenbank") or die
("Die Datenbank existiert nicht");

$abfrage = "SELECT * FROM Tabelle ORDER BY Erstellt DESC LIMIT 3";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{

echo "<td><a href='$row->Bilderlink' target='pic_haupt'><img src='$row->Thumb' width=58 height=57 border=0 ><br><br><img src=' enlarge.gif' border='0'></a><br></td>";
}
mysql_free_result($ergebnis);
?>
</table>

<?php

//Ermittlung der nächsten ID (6) und des neuen Dateinamens (Bild6.jpg)

$abfrage = "SELECT * FROM Tabelle ORDER BY ID DESC LIMIT 1";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))

$NeueID = $row->ID+1;
$NeuerDateiName = "Bild$NeueID.jpg";

//Ausgabe der Ergebnisse zur Überprüfung (Kann später rausgenommen werden)

echo "<br><br><br><br><br><p style='font-size:10px;font-family:verdana'><b>Die nächste ID lautet: </b>[$NeueID]";
echo "<br><b>Der neue Dateiname ist:</b> $NeuerDateiName </p>";

//Speicherort für hochgeladenes Bild finden (Kann wenn der richtige Pfad gefunden wurde gelöscht werden!)

$Speicherort = dirname($_SERVER['SCRIPT_FILENAME']) . '/upload/';

echo "<p style='font-size:10px;font-family:verdana'><br><b>DER SPEICHERPFAD LAUTET:</b><br> $Speicherort</p>";

if (isset($_POST['upload']))
{
if ($_FILES['userfile']['size'] > 0)
{
echo '<br /><p style=\"color:#000000;font-size:10px;font-family:verdana;\"><b>Informationen zur aktuellen Datei:</b><br><br>';
echo "<b>Dateiname: </b>". $_FILES['userfile']['name'] . '<br>';
echo "<b>Dateigröße: </b>". $_FILES['userfile']['size'] . ' Byte<br>';
echo "<b>Dateityp: </b>". $_FILES['userfile']['type'] . '<br></p>';

move_uploaded_file($_FILES['userfile']['tmp_name'],
"$Speicherort{$_FILES['userfile']['name']}");
} else {
echo "Keine Datei hochgeladen";
}
}
$dp = @opendir($Speicherort);
if ($dp === FALSE)
{
mkdir('upload');
$dp = opendir($Speicherort);
}
while ($file = readdir($dp))
{
if (!preg_match('/^\.{1,2}/', $file))
{
echo $file;
echo ' (' . filesize("upload/$file") . ' Byte) - Erfolgreich hochgeladen!';

echo '<br>';
echo '<hr noshade size="2">';
}
}
?>
<form method="post" enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>">
<p style='font-size:10px;font-family:verdana'><br><b>Ihre Dateiauswahl:</b></p><input type="file" name="userfile">
<input type="submit" name="upload" value="Hochladen">
</form>


Gruß
René

Auf der Mauer
30.06.2009, 14:43:30
Hallo,

das mit der Erfolgsausgabe hat geklappt. Es funktioniert und sieht richtig gut aus.

Nach dem Hochladen des Files werden ja die Daten zu der Datei angezeigt.

>> NAME
>> GRÖSSE
>> TYP

Darunter steht jetzt in grüner Schrift "Dateiupload erfolgreich!".

Andernfalls wenn der Upload nicht erfolgreich war werden die Daten nicht ausgegben
stattdessen wird else ausgegeben. "Dateiupload fehlgeschlagen!".

Gruß
René

cortex
02.07.2009, 09:16:22
richte bitte für jedes neue thema / frage einen eigenen thread (im passenden forum) ein.

[mod: verschoben nach Bildausschnitt aus einem großen Bild (http://www.selfphp.de/forum/showthread.php?t=21733)]

cx