Uploader de Photos

Fermé
MOBIL5 - Modifié par MOBIL5 le 3/05/2013 à 15:10
 MOBIL5 - 7 mai 2013 à 01:18
Bonjour, j'ai un problème avec un uploader de photos.
C'est un Drag 'n Drop. Lorsque je mets la photo elle s'upload dans le répertoire défini.
Seulement je veux l'upload dans le répertoire correspondant à la référence de l'URL: index.php?ref=mareference

J'ai essayé toutes sortes de variables mais ça ne fonctionne pas. Voici le code php de mon index. Inutile d'y mettre le formulaire ici puisque c'est un fichier JavaScript qui appelle la page php.


<?php setcookie("coref",$_GET['ref'],time()+ 3600 * 24 * 31 * 12,"/"); ?>  


Et voici le code php de la page cible.


<?php  

$cokiref = htmlentities($_COOKIE['coref']);  
$upload_dir = '../'.$cokiref.'/';  
$allowed_ext = array('jpg','jpeg','png','gif');  


if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){  
 exit_status('Error! Wrong HTTP method!');  
}  


if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ){  
   
 $pic = $_FILES['pic'];  

 if(!in_array(get_extension($pic['name']),$allowed_ext)){  
  exit_status('Only '.implode(',',$allowed_ext).' files are allowed!');  
 }  

 // Move the uploaded file from the temporary   
 // directory to the uploads folder:  
   
 if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){  
  exit_status('File was uploaded successfuly!');  
  setcookie("coref","",time()-3600,"/");  
 }  
   
}  

exit_status('Something went wrong with your upload!');  


// Helper functions  

function exit_status($str){  
 echo json_encode(array('status'=>$str));  
 exit;  
}  

function get_extension($file_name){  
 $ext = explode('.', $file_name);  
 $ext = array_pop($ext);  
 return strtolower($ext);  
}  

?>  


A voir également:

4 réponses

Utilisateur anonyme
3 mai 2013 à 17:30
Salut salut,

Je suis pas sûr d'avoir tout compris , quand tu dis "je veux l'upload dans le répertoire correspondant à la référence de l'URL" , tu veux que l'image se place dans un dossier correspondant au nom présent après le "ref=" dans l'url?
0
patateforte Messages postés 25 Date d'inscription lundi 29 avril 2013 Statut Membre Dernière intervention 6 juillet 2015 14
4 mai 2013 à 11:07
Bonjour,
kyser soze, je crois que c'est bien la question posée.
Dans ce cas :

Remplace :
 if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){  
  exit_status('File was uploaded successfuly!');  
  setcookie("coref","",time()-3600,"/");  
 }  


Par :

if (isset($_GET["ref"])){ $dossier = $_GET["ref"]; }
else {$dossier = "DOSSIERDEFAUT"; } 
// Remplacer DOSSIERDEFAUT par un dossier par défaut au cas où aucune référence n'est passée dans l'url.

 if(move_uploaded_file($pic['tmp_name'], $dossier)){  
  exit_status('File was uploaded successfuly!');  
  setcookie("coref","",time()-3600,"/");  
 } 
0
Ca ne fonctionne pas.

Voici la page html.


<?php setcookie("coref",$_GET['ref'],time()+ 400,"/"); ?>     
<!DOCTYPE html>    
<html>    
    <head>    
        <meta charset="utf-8" />    
        <title>PHOTOS : <?php echo isset($_GET['ref']) ? htmlspecialchars($_GET['ref']) : 'VIDE'; ?></title>    
            
        <!-- Our CSS stylesheet file -->    
        <link rel="stylesheet" href="assets/css/styles.css" />    
            
        <!--[if lt IE 9]>    
          <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>s    
        <![endif]-->    
    </head>    
        
    <body>    
      
  <header>    
   <h1>PHOTOS: <?php echo isset($_GET['ref']) ? htmlspecialchars($_GET['ref']) : 'VIDE'; ?></h1>    
  </header>    
      
  <div id="dropbox">    
   <span class="message">Glissez-déposez vos photos ici<br /></span>    
  </div>    
            
        <!-- Including The jQuery Library -->    
  <script src="http://code.jquery.com/jquery-1.6.3.min.js"></script>    
      
  <!-- Including the HTML5 Uploader plugin -->    
  <script src="assets/js/jquery.filedrop.js"></script>    
      
  <!-- The main script file -->    
        <script src="assets/js/script.js"></script>    
        
    </body>    
</html>    


La fichier php est appelé à partir d'un fichier .js
Voici le code ici:

http://www.pastebin.com/if1HcD1B

Et le fichier php:


<?php

if (isset($_COOKIE['coref']))
{
	$coki = $_COOKIE['coref'];
	$dossier = '../{$coki}/';
}

else
{
	$dossier = "fichier";
}

$allowed_ext = array('jpg','jpeg','png','gif');


if(strtolower($_SERVER['REQUEST_METHOD']) != 'GET'){
	exit_status('Error! Wrong HTTP method!');
}

if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ){
	
	$pic = $_FILES['pic'];

	if(!in_array(get_extension($pic['name']),$allowed_ext)){
		exit_status('Only '.implode(',',$allowed_ext).' files are allowed!');
	}

	// Move the uploaded file from the temporary 
	// directory to the uploads folder:

	if(move_uploaded_file($_FILES['pic']['tmp_name'], $dossier)){
		exit_status('File was uploaded successfuly!');  
		setcookie("coref","",time()-400,"/");
	} 
	
}

exit_status('Something went wrong with your upload!');

// Helper functions

function exit_status($str){
	echo json_encode(array('status'=>$str));
	exit;
}

function get_extension($file_name){
	$ext = explode('.', $file_name);
	$ext = array_pop($ext);
	return strtolower($ext);
}
?>
0
up
0