/ / Codeigniter - zwei Upload-Felder in einer Form - Codeigniter, Upload

Codeigniter - zwei Upload-Felder in einer Form - Codeigniter, Upload

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 № 1

BEARBEITEN

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.