2010-06-22 6 views
1

comment envoyer $ _FILES à une autre fonction?

<?php 
function save(how get $_FILES["img"] ??) 
{ 
    //$img = $_FILES["img"]; How get $_FILES["img"] ?? 
    $user_file = $_FILES['img']['name']; 
    $file_temp = $_FILES['img']['tmp_name']; 
    $new = "new/"; 

    move_uploaded_file($file_temp, $new .$user_file.''); 
    echo "<br><b>OK<b>"; 
} 

if(isset($_POST['SEND'])){ 
    save($_FILES["img"]); 
} 
?> 
+0

Demandez-vous comment déplacer le fichier d'un répertoire à un autre ou comment passer la valeur "$ _FILES ['img']" dans une fonction? – darcy

Répondre

3

La variable réelle est $_FILES; $_FILES['img'] est une valeur stockée dans ce tableau. Vous ne pouvez pas passer cette valeur à une fonction et la stocker dans quelque chose nommé $_FILES['img'], mais vous ne le voudriez pas vraiment. Nommez quelque chose comme $img, et l'utiliser:

function save($img) 
{ 
    $user_file = $img['name']; 
    $file_temp = $img['tmp_name']; 
    $new = "new/"; 

    move_uploaded_file($file_temp, $new .$user_file.''); 
    echo "<br><b>OK<b>"; 
} 
0

Si vous faites un

var_dump($_FILES); 

vous pouvez voir toutes sortes de bonnes informations qui sont stockées dans le tableau $ _FILES, y compris le nom du fichier téléchargé et l'emplacement de temp.

0

$ _FILES - est un tableau habituel dont vous pouvez voir la structure par var_dump($_FILES); Vous pouvez travailler avec comme avec un tableau habituel.

0

Les fichiers sont un (super) global. Vous pouvez le référencer à l'intérieur d'une fonction très bien.

Si vous voulez factoriser certaines fonctionnalités, et invoquer une fonction d'agir sur seulement une partie du $ _FILES tableau superglobale, vous pouvez faire quelque chose comme ceci:

function save($fileKey){ 
    $file = $_FILES[$fileKey]; 
    move_uploaded_file($file['tmp_name'],...); 
} 
save('img'); 
save('img2'); 

ou

function save($arrayFile){ 
    move_uploaded_file($arrayFile['tmp_name'],...); 
} 
save($_FILES['img'); 
save($_FILES['img2']); 
Questions connexes