2015-09-01 2 views
0

Bonjour, je crée un code pour télécharger le fichier docx et le fichier pdf. Voici le code pour cela.Comment télécharger docx, fichier pdf avec renommer?

$allowedExts = array("pdf", "docx");//array("mp4", "WebM", "ogg"); 
$extension = end(explode(".", $_FILES["file"]["name"])); 
if (($_FILES["file"]["size"] < 90000000000000000000000000000000000) && in_array($extension, $allowedExts)){ 
    if ($_FILES["file"]["error"] > 0){ 
     echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
    }else{ 
     echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
     echo "Type: " . $_FILES["file"]["type"] . "<br />"; 
     echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; 
     if (file_exists("upload/" . $_FILES["file"]["name"])){ 
      echo $_FILES["file"]["name"] . " already exists. "; 
     }else{ 
      move_uploaded_file($_FILES["file"]["tmp_name"], 
      "docmument_upload/" . $_FILES["file"]["name"]); 
      echo "Stored in: " . "docmument_upload/" . $_FILES["file"]["name"]; 
     } 
    } 

Mais je veux renommer le fichier avant de le télécharger dans le dossier. Comment puis-je faire ceci?

+0

qui est 'vous'? vous en tant que programmeur dans le code ou vous en tant que l'utilisateur de télécharger le fichier? toujours ou seulement lorsque le doublon est trouvé? quelque chose se passe-t-il si le nouveau nom existe mais pas l'ancien? – Paolo

Répondre

1

tout d'abord vous obtenez l'extension de fichier en utilisant

$temp = explode(".", $_FILES["file"]["name"]); 
$extension= end($temp);// file extension 

Renommer votre nom de fichier en tant que

$new_name=time().".".$extension;// new name with current timestamp 
move_uploaded_file($_FILES["file"]["tmp_name"],"docmument_upload/" . $new_name); 
0

il suffit de changer votre ligne de code

De

move_uploaded_file($_FILES["file"]["tmp_name"], 
      "docmument_upload/" . $_FILES["file"]["name"]); 

Pour

$newFileName="newName".".".$extension; 
move_uploaded_file($_FILES["file"]["tmp_name"], 
      "docmument_upload/" . $newFileName); 

$ NewFileName est la variable où vous pouvez créer votre nouveau nom de fichier. Toujours prendre soin de l'écrasement problème, essayez donc de rendre le nom de fichier unique.

$ extension est la variable que vous utilisez pour valider.

0

Cela produira les résultats escomptés pour vous:

$ext = end((explode(".", $_FILES["file"]["name"]))); 
$filename = time(). rand(). "." . $ext; 
move_uploaded_file($_FILES["file"]["tmp_name"], "docmument_upload/" . $filename);