Page PHP pour envoyer des fichiers
Posté : 05 avr. 2016, 14:35
Bonjour, j'ai un fichier PHP qui me permet d'envoyer des fichier image sur mon serveur.
Voici les pages concernées:
img_form.php
Ce scripte permet d'envoyer des image (avec extentions autorisé) au serveur. Il fonctionne parfaitement bien.
Hors, j'ai essayer d'ajouter 'xlsx', 'xls', 'xlsm', 'docx', 'doc', 'txt' dans les extensions autorisés, mais cela ne fonctionne pas. Il y a une ligne je crois qui vérifie si le fichier est bien une image, mais je souhaiterais la supprimer afin de pouvoir envoyer tout type de fichiers dont l’extension est autorisé.
Merci pour votre aide
a bientôt
Voici les pages concernées:
img_form.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" content="text/html; charset=utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<title>Upload d'une image sur le serveur !</title>
<style type="text/css">
body
{
font-family : Arial, Times, courrier;
font-size: 10px;
background-color:transparent
}
a:link,a:active,a:visited,a.postlink:link
{
color: #2C3F5E;text-decoration: none;}
a:hover
{
color: #708090;text-decoration: none;
}
input.button
{
font-weight: bold;
cursor: hand;
border: 1px solid #9D9D9D;color: black;input,textarea,select
{
border: 1px solid Gray;
background: White;
color: Black;
font: normal 11px Verdana, Geneva, Arial, Helvetica, sans-serif;
}
</style>
</head>
<body>
<!-- Debut du formulaire -->
<form enctype="multipart/form-data" action="img_upload.php" method="post">
<p><span style="font-weight:bold; font-size:12px;">Héberger une photo:</span><br/><br/>
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_SIZE; ?>" />
<input name="fichier" type="file" id="fichier_a_uploader" /><br/>
<span style="font-style:italic;"><strong>Taille max:</strong> 7Mo - <strong>Dimensions max:</strong> 2880x1620<br/>
<strong>Fichiers acceptés:</strong> jpg, gif, png, jpeg, bmp</span><br/>
<input type="submit" name="submit" value="Uploader" / class="button"/><br/>
</p>
</form>
<!-- Fin du formulaire -->
</body>
</html>
img_upload
<style type="text/css">
body
{
font-family : Arial, Times, courrier;
font-size: 12px;
background-color:transparent
}
a:link,a:active,a:visited,a.postlink:link
{
color: #2C3F5E;text-decoration: none;}
a:hover
{
color: #708090;text-decoration: none;
}
.iframe {
border-bottom: #c2c2c2 1px solid;
border-left: #c2c2c2 1px solid;
border-right: #c2c2c2 1px solid;
border-top: #c2c2c2 1px solid;
font-size: 11px;
color: #656052;
background: #FBFCFC;
}
input.button
{
font-weight: bold;
cursor: hand;
border: 1px solid #9D9D9D;color: black;input,textarea,select
{
border: 1px solid Gray;
background: White;
color: Black;
font: normal 11px Verdana, Geneva, Arial, Helvetica, sans-serif;
}
body
{
font-family : Arial, Times, courrier;
font-size: 12px;
background-color:transparent
}
a:link,a:active,a:visited,a.postlink:link
{
color: #2C3F5E;text-decoration: none;}
a:hover
{
color: #708090;text-decoration: none;
}
input.button
{
font-weight: bold;
cursor: hand;
border: 1px solid #9D9D9D;color: black;input,textarea,select
{
border: 1px solid Gray;
background: White;
color: Black;
font: normal 11px Verdana, Geneva, Arial, Helvetica, sans-serif;
}
</style>
<?php
/************************************************************
* Script realise par Emacs
* Crée le 19/12/2004
* Maj : 23/06/2008
* Licence GNU / GPL
* [email protected]
* http://www.apprendre-php.com
* http://www.hugohamon.com
*
* Changelog:
*
* 2008-06-24 : suppression d'une boucle foreach() inutile
* qui posait problème. Merci à Clément Robert pour ce bug.
*
*************************************************************/
/************************************************************
* Definition des constantes / tableaux et variables
*************************************************************/
header( 'content-type: text/html; charset=utf-8' );
// Constantes
define('TARGET', 'fichiers/'); // Repertoire cible
define('MAX_SIZE', 7000000); // Taille max en octets du fichier
define('WIDTH_MAX', 2880); // Largeur max de l'image en pixels
define('HEIGHT_MAX', 1620); // Hauteur max de l'image en pixels
// Tableaux de donneesZ
$tabExt = array('jpg','gif','png','jpeg', 'bmp', 'xlsx', 'xls', 'xlsm', 'docx', 'doc', 'txt' ); // Extensions autorisees
$infosImg = array();
// Variables
$extension = '';
$message = '';
$nomImage = '';
/************************************************************
* Creation du repertoire cible si inexistant
*************************************************************/
if( !is_dir(TARGET) ) {
if( !mkdir(TARGET, 0755) ) {
exit ('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
}
}
/************************************************************
* Script d'upload
*************************************************************/
if(!empty($_POST))
{
// On verifie si le champ est rempli
if( !empty($_FILES['fichier']['name']) )
{
// Recuperation de l'extension du fichier
$extension = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION);
// On verifie l'extension du fichier
if(in_array(strtolower($extension),$tabExt))
{
// On recupere les dimensions du fichier
$infosImg = getimagesize($_FILES['fichier']['tmp_name']);
// On verifie le type de l'image
if($infosImg[2] >= 1 && $infosImg[2] <= 14)
{
// On verifie les dimensions et taille de l'image
if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier']['tmp_name']) <= MAX_SIZE))
{
// Parcours du tableau d'erreurs
if(isset($_FILES['fichier']['error'])
&& UPLOAD_ERR_OK === $_FILES['fichier']['error'])
{
// On renomme le fichier
$nomImage = md5(uniqid()) .'.'. $extension;
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$nomImage))
{
$valide = 'http://www.guilde-trilogy.fr/up-prive/fichiers/'.$nomImage;
}
else
{
// Sinon on affiche une erreur systeme
$message = 'Problème lors de l\'upload !';
}
}
else
{
$message = 'Une erreur interne a empêché l\'uplaod de l\'image';
}
}
else
{
// Sinon erreur sur les dimensions et taille de l'image
$message = 'Image trop grande ou trop lourde!';
}
}
else
{
// Sinon erreur sur le type de l'image
$message = 'Le fichier à uploader n\'est pas une image !';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
$message = 'L\'extension du fichier n\'est pas autorisée !';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
$message = 'Vous devez choisir un fichier !';
}
}
if( !empty($valide) )
{
echo "<p><strong>Félicitation !</strong><br/>";
echo "<p>Copiez ce lien et insérez votre image.<br/>";
echo "<input type='text' name='truc' class='iframe' value='$valide' onclick='javascript:this.focus(); this.select();' size='42'/><br/><br/>";
echo "<a href='http://www.guilde-trilogy.fr/up-prive/'/>Envoyer une nouvelle photo</a></p>";
}
if( !empty($message) )
{
echo '<p>',"\n";
echo "\t\t<strong>", htmlspecialchars($message) ,"</strong>\n";
echo "<br /><a href='javascript:history.go(-1)'/>Retour</a></p>\n\n";
}
?>
Ce scripte permet d'envoyer des image (avec extentions autorisé) au serveur. Il fonctionne parfaitement bien.
Hors, j'ai essayer d'ajouter 'xlsx', 'xls', 'xlsm', 'docx', 'doc', 'txt' dans les extensions autorisés, mais cela ne fonctionne pas. Il y a une ligne je crois qui vérifie si le fichier est bien une image, mais je souhaiterais la supprimer afin de pouvoir envoyer tout type de fichiers dont l’extension est autorisé.
Merci pour votre aide