par
Chile » 07 avr. 2006, 18:15
Bonjour,
J'ai un script d'upload + sql, qui fonctionne tres bien (grace a vous).
Je voudrais inclure deux verif au passage. Une pour le format du fichier et l'autre pour le poids.
J'ai bricolé un deuxieme script d'upload grace au tutaux, qui fonctionne mais je n'arrive pas a l'adapter a mon premier script
j'ai dans ce script un groupe de variables au debut qui font reference aux verif de poids et format, mais comment les utiliser ?
car jusqu'a la elle ne servent a rien ?
merci pour vos infos
Voici mon premier script partie php :
<?php
// je remonte la déclaration avant la récup du fichier
$nomFichier = ""; // déclaration des variables
$chemin = "";
//Script Upload
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["photo"]["name"])) {
$nomFichier = $_FILES["photo"]["name"] ; //nom du fichier choisi:
$nomTemporaire = $_FILES["photo"]["tmp_name"] ; //nom temporaire sur le serveur:
$typeFichier = $_FILES["photo"]["type"] ; //type du fichier choisi:
$poidsFichier = $_FILES["photo"]["size"] ; //poids en octets du fichier choisit:
$codeErreur = $_FILES["photo"]["error"] ; //code de l'erreur si jamais il y en a une:
//chemin qui mène au dossier qui va contenir les fichiers upload:
$chemin = "./images/" ;
//l'upload !
if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier));
}
//debut script dream mise a jour table
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO bpays (id, pays, site, photo, chemin) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['id'], "int"),
GetSQLValueString($_POST['pays'], "text"),
GetSQLValueString($_POST['site'], "text"),
GetSQLValueString($nomFichier, "text"), // utilisation des variables nom
GetSQLValueString($chemin, "text")); // et chemin
mysql_select_db($database_pays, $pays);
$Result1 = mysql_query($insertSQL, $pays) or die(mysql_error());
$insertGoTo = "indexexemple.htm";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>
et voici mon deuxieme script pour infos:
<?php
//DEFINITION DES VARIABLES
//--------------------------------------
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = './images/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
?>
Bonjour,
J'ai un script d'upload + sql, qui fonctionne tres bien (grace a vous).
Je voudrais inclure deux verif au passage. Une pour le format du fichier et l'autre pour le poids.
J'ai bricolé un deuxieme script d'upload grace au tutaux, qui fonctionne mais je n'arrive pas a l'adapter a mon premier script :?
j'ai dans ce script un groupe de variables au debut qui font reference aux verif de poids et format, mais comment les utiliser ?
car jusqu'a la elle ne servent a rien ?
merci pour vos infos
Voici mon premier script partie php :
[php]<?php
// je remonte la déclaration avant la récup du fichier
$nomFichier = ""; // déclaration des variables
$chemin = "";
//Script Upload
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["photo"]["name"])) {
$nomFichier = $_FILES["photo"]["name"] ; //nom du fichier choisi:
$nomTemporaire = $_FILES["photo"]["tmp_name"] ; //nom temporaire sur le serveur:
$typeFichier = $_FILES["photo"]["type"] ; //type du fichier choisi:
$poidsFichier = $_FILES["photo"]["size"] ; //poids en octets du fichier choisit:
$codeErreur = $_FILES["photo"]["error"] ; //code de l'erreur si jamais il y en a une:
//chemin qui mène au dossier qui va contenir les fichiers upload:
$chemin = "./images/" ;
//l'upload !
if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier));
}
//debut script dream mise a jour table
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO bpays (id, pays, site, photo, chemin) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['id'], "int"),
GetSQLValueString($_POST['pays'], "text"),
GetSQLValueString($_POST['site'], "text"),
GetSQLValueString($nomFichier, "text"), // utilisation des variables nom
GetSQLValueString($chemin, "text")); // et chemin
mysql_select_db($database_pays, $pays);
$Result1 = mysql_query($insertSQL, $pays) or die(mysql_error());
$insertGoTo = "indexexemple.htm";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>[/php]
et voici mon deuxieme script pour infos:
[php]<?php
//DEFINITION DES VARIABLES
//--------------------------------------
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = './images/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
?>[/php]