Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: cms2day Forum - Community & Support rund ums cms2day. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Dienstag, 7. Dezember 2010, 13:12

Upload soll nur mp3-Dateien schlucken

Moin,

ich hätt da ne super drigende Frage, und ja, ich hab schon gegoogelt, aber nichts richtiges gefunden.
Ich möchte im folgenden Upload nur mp3-Dateien erlauben. btw: vielleicht kann mir jemadn helfen,
einen statusbalken beim upload zu realisieren..

Der Code:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

$target "music/";
  
$target $target basename$_FILES['uploaded']['name']) ;
 
$ok=1;

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))

{

echo "Die Datei "basename$_FILES['uploadedfile']['name']). " wurde hochgeladen.";

}

else {

echo "Sorry, das gabs ein Problem mit deiner Datei.";

}

?>


Danke im vorraus!

MfG blu

Werbung

djknuffel

Moderator

  • »djknuffel« ist männlich

Beiträge: 711

CMS Version: 4.0.1

Wohnort: Frankfurt a.M.

Paypal:

  • Nachricht senden

2

Dienstag, 7. Dezember 2010, 15:12

schau dir mal das modul "Multiple File Upload" an, da findest Du vllt. was Du suchst, inklusive Ladebalken(wobei das ne Loadergrafik ohne Prozentanzeige is) :)
akrell.de - Informationen zu meinen Modulen für das cms2day System und meine Arbeiten als Hobbyfotograf

Werbung

3

Dienstag, 7. Dezember 2010, 15:40

k.. werd ich demnächst machen.. :)

MfG blu

Werbung

4

Dienstag, 7. Dezember 2010, 19:00

Hab ein neues Script ausprobiert, doch auch jetzt funktioniert es nicht. Warum denn nicht??

MfG blu

Werbung

djknuffel

Moderator

  • »djknuffel« ist männlich

Beiträge: 711

CMS Version: 4.0.1

Wohnort: Frankfurt a.M.

Paypal:

  • Nachricht senden

5

Dienstag, 7. Dezember 2010, 19:12

du musst auf den mime type prüfen um alles was keine mp3 is zu blocken, wie das funktioniert findest in dem Modul "Multiple Fileupload", ich werd später dazu nochmal was schreiben(upload mit Mimetypeprüfung), hab atm nur etwas viel um die Ohren ^^
akrell.de - Informationen zu meinen Modulen für das cms2day System und meine Arbeiten als Hobbyfotograf

Werbung

6

Dienstag, 7. Dezember 2010, 19:18

Jaja, ich tu es schon verstehen, und der Code funktioniert ja auch.. aber nicht mit meinem Script. Ich bin verzweifelt. Also ich verstehe es, aber es funktioniert nicht mit dem Script dort oben.

MfG blu

Werbung

7

Dienstag, 7. Dezember 2010, 19:43

  • Was funktioniert nicht?
  • Gibt es eine Fehlermeldung?
  • Wie ist der Quelltext?
  • Gibt es eine Live-Demo?

Werbung

8

Dienstag, 7. Dezember 2010, 20:21

Problem: Er aktzeptiert immer noch alle Dateitypen, es kommen unterschiedliche Fehlermeldungen wie diese hier:
Parse error: syntax error, unexpected $end in bla bla (alle sind solche Parse Errors, also mal fehlt dann auch ein { und so)

Quelltext ist der dort oben..

Und nein, keine Live-Demo!

MfG blu

Werbung

9

Dienstag, 7. Dezember 2010, 21:11

Ich habe vor einiger Zeit eine kleine Klasse geschrieben, die das übernimmt. Ich habe die Klasse verkürzt und auf dein Script angepasst.

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?php

class File {

  /**
   * Das Array der hochgeladenen Datei.
   * 
   * @var Array
   */           
  private $file;
  
  /**
   * Die Sammlung der erlaubten Dateiendungen.
   * 
   * @var Array
   */
  private $allowedExtensions = array("mp3");
  
  /**
   * Die Sammlung der erlaubten MIME-Types.
   * 
   * @var Array
   */
  private $allowedMimeTypes = array("audio/mpeg");
  
  /**
   * Setzt die Datei
   * 
   * @param Array $file Die hochgeladene Datei.
   */           
  public function __construct(array $file) {
    if (!empty($file["name"]) && 
        !empty($file["type"]) && 
        !empty($file["tmp_name"]) && 
        isset($file["error"]) && 
        !empty($file["size"])) { 
      $this->file $file;
    } else {
      throw new Exception;
    }
  }
  
  /**
   * Gibt zurück, ob die Dateiendung erlaubt ist oder nicht.
   * 
   * @return Boolean True, wenn die Dateiendung erlaubt ist. Ansonsten false.
   */           
  public function hasAllowedExtension() {
    return in_array(end(explode("."strtolower($this->getFileName()))), $this->getAllowedExtensions());
  }
  
  /**
   * Gibt zurück, ob der MIME-Type erlaubt ist oder nicht.
   * 
   * @return Boolean True, wenn der MIME-Type erlaubt ist. Ansonsten false.
   */
  public function hasAllowedMimeType() {
    return in_array($this->getFileType(), $this->getAllowedMimeTypes());
  }
  
  /**
   * Gibt die erlaubten Dateiendungen zurück.
   * 
   * @return Array Die erlaubten Dateiendungen.
   */           
  public function getAllowedExtensions() {
    return $this->allowedExtensions;
  }
  
  /**
   * Gibt die erlaubten MIME-Types zurück.
   * 
   * @return Array Die erlaubten MIME-Types.
   */           
  public function getAllowedMimeTypes() {
    return $this->allowedMimeTypes;
  }
  
  /**
   * Gibt die Datei zurück.
   * 
   * @return Array Die Datei.
   */ 
  public function getFile() {
    return $this->file;
  }
  
  /**
   * Gibt den Dateinamen zurück.
   * 
   * @return String Der Dateiname.
   */
  public function getFileName() {
    return $this->file["name"];
  }
  
  /**
   * Gibt den Dateityp zurück.
   * 
   * @return String Der Dateityp.
   */
  public function getFileType() {
    return $this->file["type"];
  }
  
  /**
   * Gibt den temporären Namen der Datei zurück.
   * 
   * @return String Der temporäre Name der Date.
   */
  public function getFileTmpName() {
    return $this->file["tmp_name"];
  }

  /**
   * Gibt einen etwaigen Uploadfehler zurück.
   * 
   * @return String Der etwaige Uploadfehler.
   */
  public function getFileError() {
    return $this->file["error"];
  }
  
  /**
   * Gibt die Dateigrösse zurück.
   * 
   * @return String Die Dateigrösse.
   */
  public function getFileSize() {
    return $this->file["size"];
  }

} 

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  try {
    $file = new File($_FILES["uploaded"]);
  } catch (Exception $e) {
    die("Error beim hochladen.");
  }

  $target "music/".basename($file->getFileName());

  if ($file->hasAllowedExtension() && $file->hasAllowedMimeType()) {
    if (move_uploaded_file($file->getFileTmpName(), $target)) {
      print "Die Datei ".basename($file->getFileName())." wurde hochgeladen.";
    } else {
      print "Sorry, da gabs ein Problem mit deiner Datei.";
    }
  } else {
    print "Falsche Dateiendung oder MIME-Type.";
  }
}

?>

<form method="post" action="file.php" enctype="multipart/form-data">
<p><input type="file" name="uploaded" size="40"></p>
<p><input type="submit" name="submit" value="Hochladen"></p>
</form>


Du kannst das nehmen, was du brauchst. Bei mir hat dies geklappt.

Werbung

10

Mittwoch, 8. Dezember 2010, 10:56

Hey Prime,

vielen vielen Dank.. ohne dich hätte ich es nicht hingekriegt. Es funktioniert ohne Probleme, perfekt.

MfG blu

Werbung