Voici une partie de code de ma page d'upload (j'utilise uploadify), je précise qu'il n'y a pas de unset sur ma page qui détruirai ma session.
?>
echo @$_SESSION['temp']['photo1'];
echo @$_SESSION['temp']['photo2'];
<script type="text/javascript">
$(document).ready(function() {
$("#fileUploadgrowl1").fileUpload({
'uploader': '/includes/scripts/progress_bar/uploadify/uploader.swf',
'cancelImg': '/includes/scripts/progress_bar/uploadify/cancel.png',
'script': '/templates/pages/etape1_description_upload_photo1.php',
'scriptData': { 'session': '<?php echo session_id(); ?>'},
'folder': '/photos/',
'fileDesc': 'Image Files',
'buttonImg': '../../interface/parcourir.gif',
'fileExt': '*.jpg;*.jpeg;*.png;*.gif',
'auto': true,
'multi': false,
'simUploadLimit': 1,
'sizeLimit': 10048576,
onError: function (event, queueID ,fileObj, errorObj) {
var msg;
if (errorObj.status == 404) {
alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
msg = 'Could not find upload script.';
} else if (errorObj.type === "HTTP")
msg = errorObj.type+": "+errorObj.status;
else if (errorObj.type ==="File Size")
msg = fileObj.name+'<br>'+errorObj.type+' Limit: '+Math.round(errorObj.sizeLimit/1024)+'KB';
else
msg = errorObj.type+": "+errorObj.text;
$.jGrowl('<p></p>'+msg, {
theme: 'error',
header: 'ERREUR',
sticky: true
});
$("#fileUploadgrowl1" + queueID).fadeOut(250, function() { $("#fileUploadgrowl1" + queueID).remove()});
return false;
},
onCancel: function (a, b, c, d) {
var msg = "Cancelled uploading: "+c.name;
$.jGrowl('<p></p>'+msg, {
theme: 'warning',
header: 'l\'envoi a été interrompu',
life: 4000,
sticky: false
});
},
onComplete: function (a, b ,c, d, e) {
var size = Math.round(c.size/1024);
$.jGrowl('<p></p>'+c.name+' - '+size+'KB', {
theme: 'success',
header: 'Envoi effectué avec succès',
life: 4000,
sticky: false
});
}
});
});
$(document).ready(function() {
$("#fileUploadgrowl2").fileUpload({
'uploader': '/includes/scripts/progress_bar/uploadify/uploader.swf',
'cancelImg': '/includes/scripts/progress_bar/uploadify/cancel.png',
'script': '/templates/pages/etape1_description_upload_photo2.php',
'scriptData': { 'session': '<?php echo session_id(); ?>'},
'folder': '/photos/',
'fileDesc': 'Image Files',
'buttonImg': '../../interface/parcourir.gif',
'fileExt': '*.jpg;*.jpeg;*.png;*.gif',
'auto': true,
'multi': false,
'simUploadLimit': 1,
'sizeLimit': 10048576,
onError: function (event, queueID ,fileObj, errorObj) {
var msg;
if (errorObj.status == 404) {
alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
msg = 'Could not find upload script.';
} else if (errorObj.type === "HTTP")
msg = errorObj.type+": "+errorObj.status;
else if (errorObj.type ==="File Size")
msg = fileObj.name+'<br>'+errorObj.type+' Limit: '+Math.round(errorObj.sizeLimit/1024)+'KB';
else
msg = errorObj.type+": "+errorObj.text;
$.jGrowl('<p></p>'+msg, {
theme: 'error',
header: 'ERREUR',
sticky: true
});
$("#fileUploadgrowl2" + queueID).fadeOut(250, function() { $("#fileUploadgrowl2" + queueID).remove()});
return false;
},
onCancel: function (a, b, c, d) {
var msg = "Cancelled uploading: "+c.name;
$.jGrowl('<p></p>'+msg, {
theme: 'warning',
header: 'l\'envoi a été interrompu',
life: 4000,
sticky: false
});
},
onComplete: function (a, b ,c, d, e) {
var size = Math.round(c.size/1024);
$.jGrowl('<p></p>'+c.name+' - '+size+'KB', {
theme: 'success',
header: 'Envoi effectué avec succès',
life: 4000,
sticky: false
});
}
});
});
</script>
<br />
Photo n°1<br /><div id="fileUploadgrowl1">erreur avec Javascript</div>
Photo n°2<br /><div id="fileUploadgrowl2">erreur avec Javascript</div>
<input type="hidden" value="2" name="nb_photos"/>
<?php
Voici ma page ou je créer ma session $_SESSION['temp']['photo1']
<?php session_start(); ?>
<!--Permet l'echange de session (firefox)-->
<?php if ($_REQUEST['session']) session_id($_REQUEST['session']); ?>
<?php
if (isset($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$nom_photo_renomme = md5(uniqid(rand(), true)); // uniquid() Génère un identifiant unique basé sur la date et heure courante en microsecondes.
$extension_photo = strtolower(strrchr($_FILES['Filedata']['name'], '.')); //strrchr renvoie l'extension avec le point // strtolower met l'extension en minuscule
$nom_photo_renomme_avec_extension = $nom_photo_renomme . $extension_photo;
$targetFile = str_replace('//','/',$targetPath) . $nom_photo_renomme_avec_extension;
$_SESSION['temp']['photo1'] = $nom_photo_renomme_avec_extension;
move_uploaded_file($tempFile,$targetFile);
echo "1";
}
?>
Et voici ma page ou je créer ma session $_SESSION['temp']['photo2']
<?php session_start(); ?>
<!--Permet l'echange de session (firefox)-->
<?php if ($_REQUEST['session']) session_id($_REQUEST['session']); ?>
<?php
if (isset($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$nom_photo_renomme = md5(uniqid(rand(), true)); // uniquid() Génère un identifiant unique basé sur la date et heure courante en microsecondes.
$extension_photo = strtolower(strrchr($_FILES['Filedata']['name'], '.')); //strrchr renvoie l'extension avec le point // strtolower met l'extension en minuscule
$nom_photo_renomme_avec_extension = $nom_photo_renomme . $extension_photo;
$targetFile = str_replace('//','/',$targetPath) . $nom_photo_renomme_avec_extension;
$_SESSION['temp']['photo2'] = $nom_photo_renomme_avec_extension;
move_uploaded_file($tempFile,$targetFile);
echo "1";
}
?>