2010-06-30 4 views
2

J'ai créé un contrôleur qui gère les publications de fichiers, déplace les fichiers téléchargés vers un dossier à côté du fichier index.php (pas dans le dossier de l'application, parce que je veux atteindre les fichiers directement http).Le téléchargement de fichier fonctionne sur Windows, mais pas sur Linux

Le téléchargement fonctionne parfaitement sur les serveurs Windows mais pas sur Linux. La version PHP est toujours la même sur tous les serveurs, et sur ma machine locale.

Le code:

$config['upload_path'] = 'files/pictures/'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = '10240'; 
    $config['encrypt_name'] = true; 

    $this->upload->initialize($config); 

    if (! $this->upload->do_upload('Filedata')) 
    { 
     //error handling 
    } 
    else 
    { 
     $data = array('upload_data' => $this->upload->data()); 
     imageResize($data['upload_data']['full_path'],600); 
    } 

Comme vous pouvez le voir est rien de spécial, c'est une Uploader image ordinaire basée sur CI. Pourquoi ai-je une erreur sur Linux?

J'ai essayé plusieurs méthodes avec le chemin de téléchargement, mais aucune d'entre elles ne fonctionne. Le dossier a chmod 777.

$config['upload_path'] = './files/pictures/'; 
    $config['upload_path'] = './files/pictures'; 
    $config['upload_path'] = 'files/pictures/'; 
    $config['upload_path'] = 'files/pictures'; 

Aucune de ces fonctions ne fonctionne sous Linux.

+1

Quelle erreur obtenez-vous? –

+0

Alors, quelle erreur obtenez-vous? Etes-vous sûr que les autorisations sont définies correctement? – quantumSoup

+0

L'erreur que j'obtiens est la suivante: 'Le dossier temporaire est manquant. 'Par codeigniter –

Répondre

4

Le répertoire temporaire est manquant. Le fichier téléchargé est d'abord déplacé dans un répertoire temporaire avant d'être déplacé vers sa destination. Le nom du répertoire est probablement configuré quelque part, ou vous pouvez le trouver dans la documentation. Ce répertoire n'existe pas sur le serveur Linux et existe sur le serveur Windows.

+0

Vérifiez si le dossier de téléchargement temporaire existe ET l'utilisateur apache a un accès en écriture. Voir @Aircule commentaire à votre question ci-dessus, il est normalement configuré en définissant upload_tmp_dir dans php.ini. – wimvds

+0

C'est le problème. Il n'y a pas de dossier temporaire. –

Questions connexes