Bonjour,
je suis en train de coder un script qui télécharge un fichier '.zip' et j'aimerais qu'une fois téléchargé, le script puisse le 'déziper'. Seulement rien ne se passe quand je run mon script.
D'après ce que j'ai trouvé sur internet, cela viendrait du fait que, une fois téléchargé, mon fichier '.zip' prend des valeurs au niveau de ses permissions d'accès différentes de celles d'origine (il passe de rw-rw-rw- à rw-r--r-- ou quelques chose du style).
Voilà mon code :
J'ai essayé de changer les droits de différentes manières :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 // Récupération des variables $file=$_FILES['file']; $tag=$_POST['tag']; $iPhone=$_POST['iPhone']; $iPad=$_POST['iPad']; $sAndroid=$_POST['sAndroid']; $tAndroid=$_POST['tAndroid']; $portrait=$_POST['portrait']; $landscape=$_POST['landscape']; // Vérification du nom du fichier echo '\'' . $file['name'] . '\'</br></br>'; // Tests de réception du fichier $fileinfos=pathinfo($file['name']); $extension=$fileinfos['extension']; $allowedextensions = array('zip'); if (!isset($file) OR $file['error'] != 0 OR $file['size'] > 1000000 OR !in_array($extension, $allowedextensions)) { echo "...une erreur est survenue : téléchargement non autorisé ou incomplet (le fichier doit être de format '.zip' et faire moins de 1Go)</br>"; } else { move_uploaded_file($_FILES['file']['tmp_name'], 'generated/' . basename($_FILES['file']['name'])); echo '...\'' . $file['name'] . '\' uploadé avec succès</br>'; } // Tests de validité du formulaire if (!$iPhone AND !$iPad AND !$sAndroid AND !$tAndroid) { echo "...une erreur est survenue : aucun suppport sélectionné</br>"; } if (!$portrait AND !$landscape) { echo "...une erreur est survenue : aucune orientation sélectionnée</br>"; } // Dé-zip du fichier if (isset($_FILES['file'])) { shell_exec("cd generated/"); shell_exec('chmod 777 ' . $_FILES['file']); system('unzip ' . $_FILES['file']); echo '...\'' . $file['name'] . '\' désarchivé';
Rien à faire, j'ai pourtant réussi à changer les droits du dossier "generated" grâce à la commande "system("chmod 777 generated");".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 shell_exec("cd generated/"); shell_exec('chmod 777 ' . $_FILES['file']); //ou system("cd generated/"); system('chmod 777 ' . $_FILES['file']); //ou chmod($_FILES['file'], 0777);
Est ce que quelqu'un sait d'où peut provenir le problème ? (le fichier est bel et bien téléchargé btw).
Merci !
Partager