uploader différents formats de fichier

Default
,

Bonjour,

Voila je rencontre un petit problème avec mon code.
j'ai suivi le tutoriel un site de A à Z en 7 jours de Grafikart et j'essaye d'aller un peu plus loin. Aussi, je sollicite votre aide.

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire
Je voudrais uploder des fichiers avec des formats différents. Actuellement seul les JPEG sont bien uploadés. Voici le code qui se trouve ds class MediasController

Entourez votre code pour bien le mettre en forme
function admin_index($id){
            $this->loadModel('Media');
            if($this->request->data && !empty($_FILES['file']['name'])){
                //var_dump($_FILES);
                if(strpos($_FILES['file']['type'], 'image') !== false){
                    $dir = WEBROOT.DS.'img'.DS.date('Y-m');
                    if(!file_exists($dir)) mkdir($dir, 0777);// si le fichier n'existe pas, on le crée
                    move_uploaded_file($_FILES['file']['tmp_name'],$dir.DS.$_FILES['file']['name']);
                    $this->Media->save(array(//sauvegarde
                        'name' => $this->request->data->name,//nom de l'image
                        'file' => date('Y-m').'/'.$_FILES['file']['name'],//nom du dossier et du fichier
                        'post_id' => $id,
                        'type' => 'img'
                    ));
                    $this->Session->setFlash("L'image a bien été uploadé");
                }else{
                    $this->Form->errors['file'] = " Format refusé";
                }
            }
            //debug($_FILES);
            $this->layout = 'modal';
            $d['images'] = $this->Media->find(array(
                'conditions' => array('post_id' => $id
                )));
            $d['post_id'] = $id;
            $this->set($d);
        }

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir
Je voudrais uploader des fichiers aux formats les plus courant : PDF, doc, xls, tiff.

Ce que j'obtiens

"Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(
J'ai essayé de toucher au "type" mais j'ai toujours format refusé. Merci pour votre. Je suis plutôt débutant.

27 Réponse

2
Default
,

Oui, dans mon portfolio. Mais au niveau du site, c'est un cadre transparent.

Default
,

Dans mon portfolio aussi, l'image est transparente.

40917
,

Donc nous avons bien la liste des documents que tu envoies.
Maintenant il te faut améliorer le "foreach" pour afficher correctement les miniatures en fonction du type de fichier.

Default
,

Ok, je vais travailler dans cette direction, je te tiendrais informé. En tout cas Merci bcp.

40917
,

Je t'en pris.
Tu pourras poster le code, cela pourra aider d'autres personnes.

Default
,

bonjour chers tous jai suivi le tuto de grafikart (develpper un site de A à Z) qui étais vraiment genial but mon soucis est que je veux modifier le code pour uploader les fichiers video mais je n'y arrive ! pouvez s'il vous plais m'aider grafikart je suis meme pret a devenir membre premium pour soutenir le beau travail que tu fais ! merci bien ! c'est urgent

class MediasController extends Controller{

function admin_index($id){
    $this->loadModel('Media');
    if($this->request->data && !empty($_FILES['file']['name'])){
        if(strpos($_FILES['file']['type'], 'image') !== false){
            $dir = WEBROOT.DS.'img'.DS.date('Y-m');
            if(!file_exists($dir)) mkdir($dir,0777);
            move_uploaded_file($_FILES['file']['tmp_name'],$dir.DS.$_FILES['file']['name']);
            $this->Media->save(array('name' => $this->request->data->name, 'file' => date('Y-m').'/'.$_FILES['file']['name'], 'post_id' => $id, 'type' => 'img'));
            $this->Session->setFlash("L'image a bie été uploadé");
        }else{
            $this->Form->errors['file'] = "Le fichier n'est pas une image";
        }
    }
    $this->layout = 'Modal';
    $d['images'] = $this->Media->find(array('conditions' => array('post_id' => $id)));
    $d['post_id'] = $id;
    $this->set($d);
}

function admin_delete($id){
    $this->loadModel('Media');
    $media = $this->Media->findFirst(array('conditions' => array('id'=>$id)));
    unlink(WEBROOT.DS.'img'.DS.$media->file);
    $this->Media->delete($id);
    $this->Session->setFlash("Le media a bien été supprimé");
    $this->redirect('admin/medias/index/'.$media->post_id);
}

}

40917
,

Bonjour,
Et si tu commençais par crée ton propre sujet au lieu d'être sur un vieu de 3 ans ?

2