Uploadifi: Liste der hochgeladenen Dateien

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Uploadifi: Liste der hochgeladenen Dateien

    Hallo Leute.

    Ich bin relativ neu, was diese Geschichte anbelangt.
    Es geht um folgendes: Heute bin ich auf das Script Uploadifi gestoßen und wenn ich diesen Code in meiner Test.php nutze:

    Quellcode

    1. <link href="uploadify.css" type="text/css" rel="stylesheet" />
    2. <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
    3. <script type="text/javascript" src="swfobject.js"></script>
    4. <script type="text/javascript" src="jquery.uploadify.v2.1.4.min.js"></script>
    5. <script type="text/javascript">
    6. $(document).ready(function() {
    7. $('#file_upload').uploadify({
    8. 'uploader' : 'uploadify.swf',
    9. 'script' : 'uploadify.php',
    10. 'cancelImg' : 'cancel.png',
    11. 'folder' : 'upload/',
    12. 'auto' : true,
    13. 'fileExt' : '*.jpg;*.gif;*.png',
    14. 'fileDesc' : 'Image Files (.JPG, .GIF, .PNG)',
    15. 'multi' : true,
    16. 'scriptAccess' : 'always'
    17. });
    18. });
    19. </script>
    20. <input id="file_upload" name="file_upload" type="file" />
    Alles anzeigen


    geht alles. Also ich habe einen Button zum auswählen der Dateien und der Upload klappt auch. Nun möchte ich aber gerne, dass er mir am Ende eine Liste mit den Dateien in einem Textfeld anzeigt (muss aber keines sein - halt das ich das markieren, kopieren, einfügen kann) wo ich mir dann die Bilderlinks in dieser Form unter dem Upload anzeigen lasse:

    --------------------------------------------------------------------
    X Datein erfolgreich hochgeladen!

    Code:
    [IMGx]http://www.urlzumbild.de/xyz.jpg[/IMGx]
    [IMGx]http://www.urlzumbild.de/xyz1.jpg[/IMGx]
    [IMGx]http://www.urlzumbild.de/xyz2.jpg[/IMGx]
    [IMGx]http://www.urlzumbild.de/xyz3.jpg[/IMGx]
    [IMGx]http://www.urlzumbild.de/xyz4.jpg[/IMGx]
    --------------------------------------------------------------------


    Ich brauche dies, damit ich das in einem CMS-Artikel immer direkt einfügen kann. Cool wäre auch, wenn der Dateiname durch eine beliebige Kombination ersetzt würde, also kein Org-Dateiname
    Auf der Dokumentationsseite des Scriptes bin ich nicht wirklich fündig geworden, vor allem da ich kaum bis garkein englisch kann. Verstehe daher die Funktionen dort nicht.

    Kann mir jemand Helfen? Wäre super!

    Gruß.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mccracker ()

  • Füge ein Div ein mit der Erfolgsmeldung und verstecke es für den Anfang

    Quellcode

    1. <div id="success" style="display:none">
    2. <span id="successNumber">0</span>
    3. Datein erfolgreich hochgeladen!
    4. <ul id="sucessList"></ul>
    5. </div>


    Und in der onComplete Funktion hängst du deine Dateien in die Liste ...

    Quellcode

    1. onComplete: function(event, ID, fileObj, response, data) {
    2. // zaehler erhoehen
    3. // ...
    4. // datei in liste hängen
    5. $('#success').append('<li>' + fileObj.name + ' </li>');
    6. // zeige das div
    7. $('#success').show();
    8. }
    Alles anzeigen


    Mehr Informationen unter uploadify.com/documentation/events/oncomplete-2/
  • Soll ich de DIV dann direkt in die Scriptdatei mit einbauen, wo ich auch den anderen Code drinne hab?

    Deinen zweiten Punkt verstehe ich leider nicht ganz. Was soll ich da dann eintragen?

    Wichtig ist auch, dass es kein extra Fenster wie dieses ALERT ist, da a) der Firefox jedesmal abkratzt und b) es unpraktisch ist dann daraus was zu kopieren. Es soll einfach unter dem Hochladedingens erscheinen.

    danke

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mccracker ()

  • Hmm ich habe da jetzt glaube ich was falsch gemacht.

    Dies ist der Code meiner test.php

    Quellcode

    1. </script>
    2. <link href="uploadify.css" type="text/css" rel="stylesheet" />
    3. <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
    4. <script type="text/javascript" src="swfobject.js"></script>
    5. <script type="text/javascript" src="jquery.uploadify.v2.1.4.min.js"></script>
    6. <script type="text/javascript">
    7. $(document).ready(function() {
    8. $('#file_upload').uploadify({
    9. 'uploader' : 'uploadify.swf',
    10. 'script' : 'uploadify.php',
    11. 'cancelImg' : 'cancel.png',
    12. 'folder' : 'upload/',
    13. 'auto' : true,
    14. 'fileExt' : '*.jpg;*.gif;*.png',
    15. 'fileDesc' : 'Image Files (.JPG, .GIF, .PNG)',
    16. 'multi' : true,
    17. 'scriptAccess' : 'always'
    18. onComplete: function(event, ID, fileObj, response, data) {
    19. // zaehler erhoehen
    20. // ...
    21. // datei in liste hängen
    22. $('#success').append('<li>' + fileObj.name + ' </li>');
    23. // zeige das div
    24. $('#success').show();
    25. }
    26. </script>
    27. <input id="file_upload" name="file_upload" type="file" />
    28. <a href="javascript:$('#file_upload').uploadifyUpload();">Upload Files</a>
    29. <div id="success" style="display:none">
    30. <span id="successNumber">0</span>
    31. Datein erfolgreich hochgeladen!
    32. <ul id="sucessList"></ul>
    33. </div>
    Alles anzeigen


    Wenn ich das aber aufrufe bekomme ich nicht mehr den selsect-file-Button sondern das Inputfeld, klicke ich auf durchsuchen kann ich auch nur eine einzige Datei auswählen, obwohl Multi auf true steht. Und wenn ich dann auf Upload Files klicke passiert garnichts mehr.
    Was habe ich jetzt wieder falsch gemacht?

    gruß und danke für deine Hilfer!
  • Hi.

    Danke.

    Mein Code sieht bisher so aus:

    Quellcode

    1. </script>
    2. <link href="uploadify.css" type="text/css" rel="stylesheet" />
    3. <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
    4. <script type="text/javascript" src="swfobject.js"></script>
    5. <script type="text/javascript" src="jquery.uploadify.v2.1.4.min.js"></script>
    6. <script type="text/javascript">
    7. $(document).ready(function() {
    8. $('#file_upload').uploadify({
    9. 'uploader' : 'uploadify.swf',
    10. 'script' : 'uploadify.php',
    11. 'cancelImg' : 'cancel.png',
    12. 'folder' : 'upload/',
    13. 'auto' : true,
    14. 'fileExt' : '*.jpg;*.gif;*.png',
    15. 'fileDesc' : 'Image Files (.JPG, .GIF, .PNG)',
    16. 'multi' : true,
    17. 'scriptAccess' : 'always',
    18. onComplete: function(event, ID, fileObj, response, data) {
    19. // zaehler erhoehen
    20. // ...
    21. // datei in liste hängen
    22. $('#success').append('[IMGo]'+ fileObj.filePath +. + fileObj.name + ' [/IMGo]');
    23. // zeige das div
    24. $('#success').show();
    25. }
    26. });
    27. });
    28. </script>
    29. <input id="file_upload" name="file_upload" type="file" />
    30. <a href="javascript:$('#file_upload').uploadifyUpload();">Upload Files</a>
    31. <div id="success" style="display:none">
    32. <span id="successNumber">0</span>
    33. Datein erfolgreich hochgeladen!
    34. <ul id="sucessList"></ul>
    35. </div>
    Alles anzeigen


    Ich habe nun selber versucht noch den Pfad da mit rein zu bringen, denn es stand ja nur der Name als Liste. Habe die Listencodes dann durch meinen BBCode ersetzt und wollte die Funktion FilePath noch davorhängen. Klappt aber nicht. Sagt undefiniNaN,
    An was soll ich selber arbeiten? Was ist ein Syntax?

    gruß
  • Syntax ist die Beschreibung der Programmiersprache. Grob: "Wenn eine Klammer aufgeht, dann muss auch eine Klammer zu gehen."
    FilePath ist übrigens keine Funktion, sondern ein Attribut.
    Und Strings gehören in JavaScript wie in den meisten Programmiersprachen in Anführungszeichen.
    Daher heißt es...

    Quellcode

    1. fileObj.filePath +. // FALSCH
    2. fileObj.filePath +"." // RICHTIG


    Das ist alles JavaScript Syntax.
  • OK, jetzt passt auch der Pfad. Aber nun schreibt er alles in eine Zeile und nicht mehr untereinander. Was muss ich nun noch hinzufügen, dass der einen Zeilenumbruch macht?

    Und dann besteht ja noch der Wunsch nach einem geänderten Dateinamen.
    Mein alter Uploader (php) hat diesen Code:

    PHP-Quellcode

    1. <?php
    2. if(($_COOKIE['user_id']=='0') OR ($_COOKIE['user_name']=='Gast'))
    3. {
    4. header("Location: /index.php");
    5. }
    6. ?>
    7. <html>
    8. <head>
    9. <title>Tech-Review Upload für Reviews</title>
    10. </head>
    11. <body bgcolor=#eaedf4 text=#006699 link=#006699 alink=#006699 vlink=#006699>
    12. <font face=verdana size=1>
    13. </head></body>
    14. </html>
    15. <?php
    16. // Einstellungen
    17. $maxsize = "1000000"; // Maximale Uploadgrösse (1 MB)
    18. $uploddir = "reviews/"; // Upload Ordner
    19. $extensions = array(".jpg", ".JPG", ".gif", ".GIF", ".png", ".PNG", ".pdf", ".zip", ".rar"); // Erlaubte Dateitypen
    20. if($_POST['action']=="upload")
    21. {
    22. $tmp_name = $_FILES['bild']['tmp_name']; // Der Originalname
    23. $name = $_FILES['bild']['name']; // Der Originalname
    24. $size = $_FILES['bild']['size']; // Größe der Datei
    25. $type = $_FILES['bild']['type']; // Der MIME Type der Datei
    26. $zz = rand(1,100); // Zufallszahl
    27. $ext_tmp = explode(".", $name);
    28. $ext = ".".$ext_tmp[(count($ext_tmp)-1)];
    29. if(in_array($ext, $extensions))
    30. {
    31. if($size<=$maxsize && $size!=0)
    32. {
    33. while(file_exists($uploddir.$newname) || !$newname)
    34. {
    35. if ($ext==".zip" || $ext==".rar" || $ext==".pdf") $newname = basename($name, $ext)."_".$zz; // Zufahlszahl anhängen
    36. else $newname = md5(uniqid(rand()));
    37. }
    38. if(move_uploaded_file($tmp_name, $uploddir.$newname.$ext))
    39. {
    40. if ($ext==".zip" || $ext==".rar") {
    41. echo "<center><b>Das Archiv";
    42. } else {
    43. echo "<center><b>Das Bild";
    44. }
    45. echo " wurde erfolgreich hochgeladen.</b> <img src=/images/icons/haken.gif alt=Erfolgreich Hochgeladen><br><br>";
    46. echo "Größe: ".$size." Byte<br>";
    47. echo "Name: ".$name."<br>";
    48. echo "Dateityp: ".$type."<br><br>";
    49. if ($ext==".jpg" || $ext== ".gif"|| $ext==".png" || $ext==".PNG" || $ext==".JPG" || $ext==".GIF") {
    50. echo "Für das Bild füge diesen kompletten BB-Code <br>an eine beliebige Stelle in deinem Beitrag oder Artikel ein: <br><br>
    51. <b><a href='".$uploddir.$newname.$ext."'>[IMGo]uploads/".$uploddir.$newname.$ext."[/IMGo]</a></b>";
    52. } else {
    53. echo "Die hochgelade Datei findest du unter folgender URL<br><br>
    54. <b><a href='".$uploddir.$newname.$ext."'>uploads/".$uploddir.$newname.$ext."</a></b>";
    55. }
    56. }
    57. else{echo "Fehler: Bild konnte nicht verschoben werden!";}
    58. }
    59. else
    60. {
    61. echo "Dein Bild oder die Datei ($name) ist über $maxsize Bytes oder ist 0 KB groß";
    62. }
    63. }
    64. else
    65. {
    66. echo "Falsches Format, oder kein(e) Bild(Datei) ausgewählt!!! ".$name;
    67. }
    68. }
    69. else
    70. {
    71. echo "<form action='".$_SERVER['PHP_SELF']."' enctype=\"multipart/form-data\" method='post'>";
    72. echo "<br><input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\">";
    73. echo "<input type='hidden' name='action' value='upload'>";
    74. echo "<table>";
    75. echo "<tr>";
    76. echo "<h4><b>Bitte Datei auswählen:</b></h4><br>
    77. <b>Maximale Größe:</b> 1 MB<br>
    78. <b>Erlaubte Dateitypen:</b> jpg|JPG|gif|GIF|png|PNG|zip|rar|pdf <br><br>
    79. <b>Upload-Modul für:</b> Reviews <br><br>
    80. <td>=></td><td><input type='file' name='bild'></td>";
    81. echo "</tr><tr>";
    82. echo "<td> </td><td><input type='submit' value='Hochladen'><br></td>";
    83. echo "</tr>";
    84. echo "</form>";
    85. echo "</table>";
    86. echo "<img src=/images/icons/attention.gif alt=Wichtig> <B>Bitte nur 1mal klicken und warten!</B>";
    87. echo "<p>";
    88. }
    89. ?>
    90. <html><br><br><INPUT TYPE=BUTTON VALUE="Zurück" onClick="history.go(-1)"> <INPUT TYPE='button' VALUE='Schlie&szlig;en' onClick='window.close()'></FORM>
    91. <form>
    92. </html>
    Alles anzeigen


    Wie lässt sich das Java nun so erweitern, dass es vorm Upload den Namen der Datei ändert.
    Kann ich die Moderatorenberechtigung auch dort einbauen? Also das man das Teil nur als Moderator nutzen kann? So wie im alten Uploader?

    Tut mir leid, wenns ein bisschen viel ist, aber ich hatte wie gesagt mit sowas noch nichts großartig zutun und habe mich die letzten Tage durch zich verschiedene Scripts sprichwörtlich gekämpft und kam zu keinem Ergebnis. Erst bei Uploadify gefiel mir das echt gut und daher versuche ich nun natürlich, dass ich das für unsere Team hinbekomme. Wäre dir also sehr dankbar, wenn Du mir da nochmal weiterhelfen könntest.

    gruß
  • htaccess oder Sessions würden mehr Sinn machen, ja.
    Zeilenumbruch geht in HTML mit der Ausgabe von "<br>".

    Um zu umgehen, dass du die Datei überschreibst: Prüfe ob die Datei schon existiert und wähle einen anderen Dateinamen.
    Hier mal ein ganz simples Beispiel:

    Quellcode

    1. $filename = 'xx';
    2. while (file_exists($filename)) {
    3. $filename .= '.1';
    4. }
    5. echo $filename;


    Umbenennen mit PHP ist nur ein Funktionsaufruf [phpdoc]rename[/phpdoc] - du wirst eben nur noch ein Frontend dafür programmieren müssen.
    Lg
  • Gut, ich merke schon das das hier nichts wird. Das mit dem Zeilenumbruch habe ich hinbekommen, aber der Rest wird wohl nichts, denn ich kann ja meinen Redakteuren nicht aufbürgen, dass sie alle Dateien nochmal manuell umbenennen, denn die Mehrarbeit macht die Zeitersparnis eines Mutliuploaders wieder zunichte. Was hier bei XX rein kommen soll weiß ich auch nicht.

    Geschweige denn wie ich ein Frontend programmiere. Alles also umsonst.........

    Danke trotzdem.

    gruß
  • EDIT:

    habe hier das gefunden:
    uploadify.com/forums/discussio…nstead-of-the-filename/p1

    Dort war dieser Code für die uploadify.php zu finden:
    if (!empty($_FILES)) {

    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    $filename = $_FILES['Filedata']['name'];
    $targetFile = str_replace('//','/',$targetPath) . $filename;

    //Avoid files Overwrite
    while(file_exists($targetFile)){
    $user = "g".rand(0,100);
    $filename = $user."-". $_FILES['Filedata']['name'];
    $targetFile = str_replace('//','/',$targetPath) . $filename;
    }
    move_uploaded_file($tempFile,$targetFile);
    echo $_FILES['Filedata']['name'];


    Mein Code sieht also aktuell so aus:

    Quellcode

    1. if (!empty($_FILES)) {
    2. $tempFile = $_FILES['Filedata']['tmp_name'];
    3. $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    4. $filename = $_FILES['Filedata']['name'];
    5. $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
    6. // $fileTypes = str_replace('*.','',$_REQUEST['fileext']);
    7. // $fileTypes = str_replace(';','|',$fileTypes);
    8. // $typesArray = split('\|',$fileTypes);
    9. // $fileParts = pathinfo($_FILES['Filedata']['name']);
    10. // if (in_array($fileParts['extension'],$typesArray)) {
    11. // Uncomment the following line if you want to make the directory if it doesn't exist
    12. // mkdir(str_replace('//','/',$targetPath), 0755, true);
    13. //Avoid files Overwrite
    14. while(file_exists($targetFile)){
    15. $user = "g".rand(0,100);
    16. $filename = $user."-". $_FILES['Filedata']['name'];
    17. $targetFile = str_replace('//','/',$targetPath) . $filename;
    18. }
    19. move_uploaded_file($tempFile,$targetFile);
    20. echo $_FILES['Filedata']['name'];
    21. // } else {
    22. // echo 'Invalid file type.';
    23. // }
    24. }
    25. ;?>
    Alles anzeigen


    Es funktioniert auch, dass dann auf dem Server die Datei einen Zusatz im Namen erhält, Problem ist nun aber, dass nach dem Upload Beispielsweise von Bild-Nr1.jpg dann auf dem Server (beim bereits Vorhandensein) dann xyz-Bild-Nr1.jpg geändert wird, aber unterhalb des Uploadfeldes noch der alte Dateiname und nicht der mit dem Zusatz angezeigt wird.

    Mein Problem nun letztlich, dass am Ende des Downloads auch der richtige Dateiname auf dem Server angezeigt werden soll, nicht den Dateinamen der Quell-Datei. Idee?

    gruß

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von mccracker ()