Upload fichier vers serveur : Probléme php
Utilisateur anonyme
-
benj -
benj -
Bonjour,
J'ai un petit probléme avec un script qui permet d'envoyé des fichier vers mon serveur.
Voici le code :
L'upload se fait parfaitement mais le fichier est renomé pour prendre le numéro de l'ID, jusque ici tout va bien.
Mais il n'y a pas l'extension. Je voudrais que le fichier se nomme :
Mais je ne sais pas comment faire.
Merci
J'ai un petit probléme avec un script qui permet d'envoyé des fichier vers mon serveur.
Voici le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Lucasweb</title>
<meta http-equiv="Cache-Control" content="no-cache" />
<style type="text/css" media="all">@import "./css/css.css"; </style>
<script type="text/javascript" src="java/xdir.js"></script>
</head>
<body>
<?php include('menu.html') ?>
<?php
if(isset($_GET['id'])){
//recup de lid posté en GET par le lien
$file = $_GET['id'];
}
// Taille maximum
$MAX_FILE_SIZE = 150000;
// Dossier de destination du fichier
$folder = "./photo/";
// Tableau array des différents types
$allowed_types = array("image/bmp", "image/gif", "image/pjpeg", "image/jpeg", "image/jpg");
// Variables récupérée par methode POST du formulaires
$ftype = $HTTP_POST_FILES['fichier']['type'];
$fsize = $HTTP_POST_FILES['fichier']['size'];
$ftmp = $HTTP_POST_FILES['fichier']['tmp_name'];
// Diverses test afin de savoir si :
// Le format de fichier correspond à notre tableau array
if(!in_array($ftype, $allowed_types)){$error = 1;}
// La taille du fichier n'est pas dépassée
if($fize > $MAX_FILE_SIZE){$error = 2;}
// Le fichier n'existe pas déjà
if(file_exists($folder."m_".$file)){$error = 3;}
// Si tout va bien, c'est bien déroulé
if(copy($ftmp,''.$folder.''.$file.'')) {$error = 0;}
// Switch servant simplement à la gestion des erreures
switch($error){
case'0':
echo("Fichier correctement envoyé.");
break;
case'1':
echo("Format de fichier incorrecte.");
break;
case'2':
echo("Fichier trop volumineux.");
break;
case'3':
echo("Fichier déjà existant.");
break;
}
?>
</body>
</html>
L'upload se fait parfaitement mais le fichier est renomé pour prendre le numéro de l'ID, jusque ici tout va bien.
Mais il n'y a pas l'extension. Je voudrais que le fichier se nomme :
$id.$extenssion
Mais je ne sais pas comment faire.
Merci
A voir également:
- Upload fichier vers serveur : Probléme php
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
4 réponses
déjà je te conseil d'utiliser des elseif au lieu des if parce que là si la variable $error prend une valeur ca ne top pas le script et ca n'empeche pas la copie du fichier.
ensuite je te conseil move_uploaded_file() au lieu de copy() qui et plus approprié à cette action.
pour ce qui est de l'extension:
move_uploaded_file($ftmp,$folder.'/'.$id.'.'.$extenssion);
ensuite je te conseil move_uploaded_file() au lieu de copy() qui et plus approprié à cette action.
pour ce qui est de l'extension:
move_uploaded_file($ftmp,$folder.'/'.$id.'.'.$extenssion);
j'oublier pense à proteger tes variables super global
tu peux par exemple mettre en tete de chaque page :
qui te les protègeras automatiquement
tu peux par exemple mettre en tete de chaque page :
<?php
function ProtectArray($item) {
$item = array_map('htmlentities',$item);
if (@mysql_real_escape_string('blabla')) return array_map('mysql_real_escape_string',$item);
else return $item;
}
if (isset($_GET)) {
$GET = ProtectArray($_GET);
}
if (isset($_POST)) {
$POST = ProtectArray($_POST);
}
if (isset($_COOKIE)) {
$COOKIE = $Sql->ProtectArray($_COOKIE);
}
?>
qui te les protègeras automatiquement