Page 1 sur 1

UPLOADER PROBLEMS

Posté : 04 mars 2012, 16:12
par MEGAFILES
Bonjour

J'ai un problème d'uploader, j'ai cherché sur plusieurs forums et voici de ce qu'est composé mes pages


upload.php
<?php

require_once "global.php"; 

require_once INCLUDES . "class.upload.php";

$uploader = new ClassUpload();

$tpl->SetParam('result', '');

if(isset($_FILES['files']))
{
	if (isset($_POST['description']))
	{
		$description = filter($_POST['description']);
	}
	
	else
	{
		$description = '';
	}
  
	$MAX_SIZE = 1000000000;
  
	if(file_exists($_FILES['files']['tmp_name']) && filesize($_FILES['files']['tmp_name']) > $MAX_SIZE)
	{
		$erreur = 'Votre fichier doit faire au maximum 1 go';
		$tpl->SetParam('result', '<div id="error">' . $error . "</div>");
	}
  
	$f = $uploader->Generate();
	
	if(!isset($erreur))
	{
		if ($uploader->Upload(htmlentities($_FILES['files']['tmp_name']), htmlentities($_FILES['files']['name']), $description, htmlentities($_FILES['files']['size']), $f))
		{
			$tpl->SetParam('result', "<div id='notif'>L'h&eacute;bergement du fichier dans files/" . $f . "<br />
			<a href='/d?=" . $f . "'>www.megafiles.com/?d=" . $f . "</a></div>");
		}
	}
}

else
{
	$tpl->SetParam('result', "<div id='error'>Aucun fichier &agrave; h&eacute;berger</div>");
}

$tpl->Init();
$tpl->AddGeneric('page-head');
$tpl->AddIncludeSet('default');
$tpl->WriteIncludeFiles();
$tpl->Write('</head>');
$tpl->AddGeneric('menu');
$tpl->AddGeneric('comp-upload');
$tpl->AddGeneric('comp-footer');
$tpl->Output();
?>
class.upload.php
<?php

Class ClassUpload
{
	
	public static function Generate()
	{
		$characters = array("A", "B", "C", "D", "E", "F","G", "H", "I", "J", "K", "L","M",
		"N", "O", "P", "Q", "R","S", "T", "U", "V", "W", "X","Y","Z", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
		
		$pass_rand = array_rand($characters, 8);
		
		$pass = "";

		foreach ($pass_rand as $i) 
		{
			$pass .= $characters[$i];
		}

		return $pass;
	}
	
	public function Upload($file, $filename, $description, $size, $f)
	{	
		if (LOGGED_IN)
		{
			$username = USER_NAME; 
		} 
		
		else 
		{ 
			$username = ''; 
		}
		
		$folder = "files/" . $f;
		
		if (!file_exists($folder))
		{
			if (move_uploaded_file($file, $folder))
			{
				dbquery("INSERT INTO files (file_name,file_size,description,repertory,username) 
				VALUES ('" . $filename . "','" . $size . "','" . $description . "','" . $f . "','" . $username . "')");
				
				return true;
			}
		}
		
		return false;
		
	}
}

?>
<style>
table { border: 1px solid #C0C0C0; }
</style>
<?php 

$result = dbquery("SELECT * FROM files WHERE repertory = '" . filter($_GET['d']) . "'");

if (mysql_num_rows($result) >= 1)
{
	while ($d = mysql_fetch_assoc($result))
	{
		$new_name = $d['file_name'];
		$size = $d['file_size'];
		$description = $d['description'];
		$repertory = $d['repertory'];
	}
	
	define('FILE_EXIST', true);
}


else 
{ 
	echo "<div id='error'>Le fichier n'est pr&eacute;sentement pas disponible</div>"; 
	define('FILE_EXIST', false);
}

if (FILE_EXIST)
{
	if (isset($_POST['premium']) && $users->GetUserVar(USER_ID, 'rank') >= 2 || isset($_POST['submit']))
	{
		header("Content-type: application/force-download");
		header("Content-Disposition: attachment; filename=" . $new_name); // ici ont met le nom original :)
		readfile("files/" . $d['repertory']);
	}

	else if (isset($_POST['premium']) && !$users->GetUserVar(USER_ID, 'rank') >= 2) 
	{ 
		header('Location: premium.php'); 
		exit; 
	}

?>
<form method="post">
<p class="left">
<b>Nom du fichier&nbsp;:</b>&nbsp;<?php echo $new_name . "<br />"; ?>
<b>Description&nbsp;:</b>&nbsp;<?php echo $description . "<br />"; ?>
<b>Taille du Fichier&nbsp;:</b>&nbsp;<?php echo $size; ?>
</p>
<div class="right">
<b>Lien de t&eacute;l&eacute;chargement:</b>&nbsp;
<?php echo "<a href='http://www.visualdevelopment.fr/?d=" . $repertory . "'>http://www.visualdevelopment.fr/?d=" . $repertory . "</a>"; ?>
</div>
<div class="clear"></div>
<div class="right">
<div class="contour radius"><input class="radius orange" type='submit' name="premium" value='T&eacute;l&eacute;chargement Premium' /></div>
<div class="contour radius"><input class="radius black" type='submit' name="submit" value='T&eacute;l&eacute;chargement r&eacute;gulier' /></div>
</div>
<? } ?>
<div class="clear"></div>
Je ne peux pas upload les fichiers MP3, AVI, etc...
Je peux télécharger les images sous la forme 8 caractères composé de chiffres et lettres

Cependant, lorsque je télécharge un fichier, il devient le nom du fichier .png ou .jpeg etc...
Le seul problème c'est que l'image n'est plus visible comme quoi Windows ne peut pas afficher l'image alors qu'elle est au format d'image.

Si quelqu'un pourrait m'éclaircir ...

Re: UPLOADER PROBLEMS

Posté : 04 mars 2012, 16:19
par moogli
salut,

pourquoi autant de sujet autour de la même chose ?

sais tu ce que fait cette classe upload ?

windows n'ouvre pas le fichier car il ne connais pas l'extension.

header doit être utilisée avant tout affichage hors ce n'est pas le cas dans ton code !

je te conseil de vérifier ce que fait ton code et tu devrais pouvoir résoudre ton problème.

fichier d' 1Go ? j'espère que tu t'est payé un serveur perso :)


@+