upload

A
Anonymous
Guest
Je cherche à pouvoir proposer à mes visiteurs d'uploader des images sur mon site.

Pour ceci j'ai trouvé ce petit script:

Dans un dossier appelé 'upload' j'ai mis ceci:

dans 'index.php'

Code:
<html>
<head>
<title>Upload script</title>
</head>
<body>

<form method="post" action="upload.php3" ENCTYPE="multipart/form-data">
<input type="file" name="file_name" enctype="multipart/form-data"><br>
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<input type="submit" value="Envoyer">
</form>

</body>
</html>



Dans le même dossier, fichier 'upload.php3'

Code:
<?
if ($file_name == "none")
	{
	print "Spécifier un fichier à envoyer.";
	}

else
	{	
	/* indiquer $dest_file qui correspond au répertoire de destination */
	$dest_file="www/upload/";

	/* enlève un "\"  */
	$source_file=stripslashes($file_name);
	
	/* copie du fichier */
	$res_copy=copy($source_file , $dest_file);
	
	print "Fichier envoyé.";
	}
?>

Si je laisse le chmod de ce dossier 'upload' à 755 j'obtient ceci sur la page de confirmation:
Code:
Warning: copy(www/upload/): failed to open stream: No such file or directory in /home/allgsm/www/upload/upload.php3 on line 16

Si je met le chmod à 777 (comme il faut normalement faire je pense): erreur 500.


Merci de votre aide!
 
WRInaute passionné
si ca peut t'aider, chez mio j'ai ca:

Code:
<?
$url = "images/immo/";
$urlmini = "images/immo/mini/";
$tab = split('\.',$Fichier_name);
$tmp = $url;
while(file_exists($url)) {
	$url = $tmp;
	$num = mt_rand(0,9999999999).".".$tab[count($tab)-1];
	$url .= $num;
}
//$num correspond au nom du fichier, $tmp correspond au chemin d'acces, $url c'est le chemin complet
copy($Fichier,$url);

// fonction qui reduit une image a partir d un fichier et l enregistre dans un ti_fichier 
// Nom du fichier, tx de compression, Taille hauteur max, Taille largeur Max, rep source, rep de destination, prefixe a mettre
function reduit_fichier($fichier_image,$scale,$max_v,$max_h,$source,$destination,$prefixe) 
{ 
    // MAX_V = HAUTEUR -- MAX_H = LARGEUR
    // le nom de l'image "scalée" commencera par ti_ et le nom du fichier original 
	$tmp = getimagesize($source.$fichier_image);
    $ti_fichier_image=$prefixe.$fichier_image; 
    global $nomfichier;
	if($tmp[2] == 1) {
		return;
	} else if($tmp[2] == 2) {
		$im = ImageCreateFromJpeg("$source"."$fichier_image"); 
	} else if($tmp[2] == 3) {
		$im = ImageCreateFromPng("$source"."$fichier_image"); 
	}
    $v=ImageSY($im); // $v prend la hauteur
    $h=ImageSX($im); // $h prend la largeur
    //Floor Arrondi à l'entier inférieur
    
    //ON GERE LA HAUTEUR
    if ($v > $max_v) // Si la hauteur Img, est plus grand que le max, on reduit
    {
        $taux_hauteur=$v/$max_v;    // On recupere le taux necessaire pour retrecir
        $ti_v=(int)floor($max_v); // ti_v = taille final de la hauteur
        $ti_h=(int)floor($h/$taux_hauteur); // ti_h = taille final de la largeur
    }
    else $ti_v=$v; // Sinon on fixe la hauteur

    // Si il n'a pas deja subbit une modification de la taille
    if ($ti_h!="") $h_comp = $ti_h; else $h_comp = $h;
    if ($ti_v!="") $v_comp = $ti_v; else $v_comp = $v;

    //ON GERE LA LARGEUR
    if ($h_comp > $max_h)
    {
        $taux_largeur=$h_comp/$max_h; 
        $ti_h=(int)floor($max_h);
        $ti_v=(int)floor($v_comp/$taux_largeur); 
    }
    else $ti_h=$h_comp;
    $ti_im = ImageCreate($ti_h,$ti_v); 
    imagecopyresized($ti_im,$im,0,0,0,0,$ti_h,$ti_v,$h,$v); 
    imagejpeg($ti_im,"$destination"."$ti_fichier_image",$scale); 
    $nomfichier = $destination.$ti_fichier_image;
} 
reduit_fichier("$num",75,75,108,"$tmp","$urlmini","st_");

?>


mais c'est largement simplifiable etant donné que mon script prend l'image uploadée, et en cree une miniature "a la volée"
A+++
 
A
Anonymous
Guest
yannouk a dit:
je precise ca c'est un fichier que j'utilise en include
Je comprend pas trop, ça veut dire quoi concrètement?

Sinon à part les lignes 2 et 3 j'ai rien besoin de personnaliser dans le script?

Si j'ai bien compris il faut aussi que je rajouter un dossier (dont le nom figure aux lignes 2 et 3) et que je lui mette un chmod 777?

Merci de ton aide!
 
Discussions similaires
Haut