Eléphant du PHP |
428 Messages
23 mars 2010, 13:17
Salut,
J'ai beau cherché, je ne vois pas pourquoi il me redemande les codes d'accès htaccess...
Voici le code source de ma page qui traite les fichiers uploadés :
<?php
function formatFileName($aFileName, $aMaxLength = 50) {
$aFileName = strToLower(subStr($aFileName, 0, $aMaxLength));
$aFileName = ereg_replace('[^a-zA-Z0-9,._\+\()\-]', '_', $aFileName);
return $aFileName;
}
// On inclus le fichier de configuration
define('AZERTY', 1);
require_once ('../config.inc.php');
if ((isset ($_GET['galid']) AND !empty ($_GET['galid']) AND is_numeric ($_GET['galid'])) AND (isset ($_GET['intitle']) AND !empty ($_GET['intitle']))) {
$galid = $_GET['galid'];
$int_title = $_GET['intitle'];
$dir_orig = $CfgRelDir.DIRECTORY_SEPARATOR.$CfgDir_Gallery.DIRECTORY_SEPARATOR.$int_title.DIRECTORY_SEPARATOR.$CfgDir_Photos;
$file_name = formatFileName($_FILES['Filedata']['name']);
$orig_file_name = $_FILES['Filedata']['name'];
$file_info = pathinfo($file_name);
$file_title = basename($file_name,'.'.$file_info['extension']);
$file_tmp = $_FILES['Filedata']['tmp_name'];
$file_error = $_FILES['Filedata']['error'];
$file_size = getimagesize($file_tmp);
$file_type = $file_size['mime'];
list($width, $height) = getimagesize($file_tmp);
$file_ratio = $width/$height;
$auth_width = 1024;
$auth_height = 768;
if (!is_dir($dir_orig)) {
$error ='Veuillez indiquer un répertoire destination correct !';
} elseif (!is_writeable($dir_orig)) {
$error ='Veuillez spécifier des droits en écriture pour le répertoire destination !';
} elseif (file_exists ($dir_orig.DIRECTORY_SEPARATOR.$file_name)) {
$error = 'Un fichier portant le même nom existe déjà';
} elseif ($width !== $auth_width AND $height !== $auth_height) {
$error = 'La dimension maximale autorisée est de 1024x768 !';
} elseif ($file_error == UPLOAD_ERR_OK) {
if (($file_type == "image/pjpeg" OR $file_type == "image/jpeg") OR ($file_type == "image/x-png" OR $file_type == "image/png") OR $file_type == "image/gif") {
if (move_uploaded_file($file_tmp, $dir_orig.DIRECTORY_SEPARATOR.$file_name)) {
$error = false;
$db = mysql_connect($CfgServerHost, $CfgServerUser, $CfgServerPassword) or die('Error: Could not connect to database');
mysql_select_db($CfgDatabase,$db) or die ('Error: Cannot select database');
$req_main="INSERT INTO $CfgTableObjects (gallery_id, object_type, object_title, object_filename) VALUES ('$galid', 'photo', '$file_title', '$file_name')";
$res_main=mysql_query($req_main) or die(mysql_error());
} else {
$error = 'Le fichier temporaire n\'a pas pu etre déplacé.';
}
} else {
$error = 'Le fichier n\'est pas une image valide (JPG, JPEG, PNG, GIF autorisées).';
}
} else {
switch ($file_error) {
case UPLOAD_ERR_INI_SIZE:
$error = 'Le fichier dépasse la valeur spécifiée pour upload_max_filesize dans php.ini.';
break;
case UPLOAD_ERR_PARTIAL:
$error = 'Le fichier n\'a été que partiellement uploadé.';
break;
default:
$error = 'Aucun fichier n\'a été uploadé.';
}
}
if ($error) {
unlink($file_tmp);
$return = array(
'status' => '0',
'error' => $error
);
} else {
$return = array(
'status' => '1',
'name' => $orig_file_name
);
$return['hash'] = md5_file($dir_orig.DIRECTORY_SEPARATOR.$file_name);
$info = @getimagesize($dir_orig.DIRECTORY_SEPARATOR.$file_name);
if ($info) {
$return['width'] = $info[0];
$return['height'] = $info[1];
$return['mime'] = $info['mime'];
}
}
echo json_encode($return);
exit();
}
Avez-vous une idée de ce qui se passe ?
Merci,
raph