2010-05-12 10 views
0

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; ?> 

Répondre

4

Ouais j'ai eu un problème similaire à ce document de téléchargement/types d'images au fichier de CodeIgniter classe de téléchargement; le travail autour de moi était d'ajouter 'application/octet-stream' types MIME pour chaque type i avait des problèmes avec comme ceci:

En application/config/mimes.php

'jpeg' => array('image/jpeg', 'image/pjpeg', 'application/octet-stream'), 
'jpg' => array('image/jpeg', 'image/pjpeg', 'application/octet-stream'), 
'jpe' => array('image/jpeg', 'image/pjpeg', 'application/octet-stream'), 
'png' => array('image/png', 'image/x-png', 'application/octet-stream'), 
+0

Ouais i trouvé cela aussi. a dû ajouter des mimes supplémentaires à la classe mime. – Drew