Il y a beaucoup de correctifs suggérés pour cela mais aucun d'entre eux ne fonctionne pour moi. J'ai essayé de faire la classe de téléchargement (en utilisant les méthodes suivantes: Method1 et Method2). Lorsque je tente de télécharger un mp3 que je reçois le message d'erreur suivantJe ne peux pas télécharger de fichiers mp3 en utilisant Codeigniter
Le filetype que vous tentez de télécharger n'est pas autorisé
Voici mon code pour mon modèle et ma forme (je l'ai a eu un contrôleur très maigre). Si quelqu'un pouvait m'aider avec ça, je serais éternellement reconnaissant.
Modèle
function do_upload()
{
$soundfig['upload_path'] = './uploads/nav';
$soundfig['allowed_types'] = 'mp3';
$this->load->library('upload', $soundfig);
if (! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());
return $error;
}
else
{
/* $data = $this->upload->data('userfile'); */
$sound = $this->upload->data();
/* $full_path = 'uploads/nav/' . $data['file_name']; */
$sound_path = 'uploads/nav/' . $sound['file_name'];
if($this->input->post('active') == '1'){
$active = '1';
}else{
$active = '0';
}
$spam = array(
/* 'image_url' => $full_path, */
'sound' => $sound_path,
'active' => $active,
'url' => $this->input->post('url')
);
$id = $this->input->post('id');
$this->db->where('id', $id);
$this->db->update('NavItemData', $spam);
return true;
}
}
Voir formulaire
<?php echo form_open_multipart('upload/do_upload');?>
<?php if(isset($buttons)) : foreach($buttons as $row) : ?>
<h2><?php echo $row->name; ?></h2>
<!-- <input type="file" name="userfile" size="20" /><br /> -->
<input type="file" name="userfile" size="20" />
<input type="hidden" name="oldfile" value="<?php echo $row->image_url; ?>" />
<input type="hidden" name="id" value="<?php echo $row->id; ?>" />
<br /><br />
<label>Url: </label><input type="text" name="url" value="<?php echo $row->url; ?>" /><br />
<input type="checkbox" name="active" value="1" <?php if($row->active == '1') { echo 'checked'; } ?> /><br /><br />
<input type="submit" value="submit" />
</form>
<?php endforeach; ?>
<?php endif; ?>
Ouais i trouvé cela aussi. a dû ajouter des mimes supplémentaires à la classe mime. – Drew