Ich versuche ein Bild und ein mp3 in Codeigniter zu laden, aus einem Formular mit zwei Dateieingabefeldern. Das Bildfeld heißt userfile, das mp3-Feld heißt trackfile.
In meinem Modell habe ich diesen Code (modifiziert):
$image_resource = $this->library_model->upload_image($_FILES);
$data = array(
"name" => $this->input->post("name"),
"imageresource" => $image_resource
);
$this->db->insert("table_name",$data);
$insert_id = $this->db->insert_id();
if ($_FILES && $_FILES["trackfile"]["name"] !== "") {
$config = array(
"allowed_types" => "mp3",
"upload_path" => "./assets/samples/"
);
$this->load->library("upload",$config);
//echo "about to upload";
if ($this->upload->do_upload("trackfile")) {
$file_data = $this->upload->data();
//echo "uploaded: <pre>"; print_r($file_data); echo "</pre>"; die();
$track_data["trackfile"] = $file_data["file_name"];
$this->db->where("id", $insert_id);
return $this->db->update("table_name",$track_data);
} else {
echo "Failed: ";
echo $this->upload->display_errors();
echo "FILE DATA: <pre>"; print_r($_FILES["trackfile"]); echo "</pre>";
}
}
Mein Problem ist, dass dies den Fehler "Der Dateityp, den Sie hochladen möchten, ist nicht erlaubt." Ich habe den mp3-Typ überprüft, es ist audio / mpeg, was in der mimes.php-Datei ist.
Dies nur passiert, wenn ich auch ein Bild hochlade. Wenn ich das Bildfeld leer lasse, lädt das mp3 gut. Jede Hilfe wird sehr geschätzt.
Antworten:
1 für die Antwort № 1BEARBEITEN
Nach den CI-Dokumenten, die allowed_types
Teil der Konfiguration ist eine Pipe-getrennte Liste von Mime-Typen, keine Dateierweiterungen. Zum Beispiel, mp3
habe den mime type "audio / mpeg". Also dein allowed_types
Die Konfiguration sollte folgendermaßen aussehen:
$config = array(
"allowed_types" => "audo/mpeg|audio/x-wav|audio/x-aiff|application/ogg",
"upload_path" => "./assets/samples/"
);
Wenn das nicht funktioniert, versuche es initialize
die Bibliothek wie erwähnt Hier.