/ / Codeigniter - dois campos de upload em um formulário - codeigniter, upload

Codeigniter - dois campos de upload em um formulário - codeigniter, upload

Eu estou tentando fazer upload de uma imagem e um mp3 no Codeigniter, de um formulário com dois campos de entrada de arquivo. O campo de imagem é chamado userfile, o campo mp3 é chamado trackfile.

No meu modelo eu tenho esse código (modificado):

        $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>";
}
}

Meu problema é que isso produz o erro "O tipo de arquivo que você está tentando enviar não é permitido". Eu verifiquei o tipo de mp3, é audio / mpeg, que está no arquivo mimes.php.

este acontece quando eu também estou fazendo o upload de uma imagem. Se eu deixar o campo de imagem em branco, o mp3 carrega bem. Qualquer ajuda muito apreciada.

Respostas:

1 para resposta № 1

EDITAR

De acordo com os documentos da CI, o allowed_types porção da configuração é uma lista delimitada por pipe de tipos MIME, não extensões de arquivo. Por exemplo, mp3 tem o tipo de mime "audio / mpeg". Então seu allowed_types config deve ficar assim:

$config = array(
"allowed_types" => "audo/mpeg|audio/x-wav|audio/x-aiff|application/ogg",
"upload_path" => "./assets/samples/"
);

Se isso não funcionar, tente initialize a biblioteca como mencionado Aqui.