HELP IMAGE CONVERTISSEMENT

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : HELP IMAGE CONVERTISSEMENT

Re: HELP IMAGE CONVERTISSEMENT

par Mazarini » 07 mars 2012, 14:38

 readfile("files/" . $repertory);
Il manque le nom du fichier ?
Je ne sais pas trop ce que contient $file_name et $repertory.

Re: HELP IMAGE CONVERTISSEMENT

par Anonyme » 05 mars 2012, 22:40

J'ai oublié l'UPLOADER
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>");
		}
	}
}

HELP IMAGE CONVERTISSEMENT

par Anonyme » 05 mars 2012, 22:39

Bonjour à tous
Sur plusieurs forums, je me suis aiidé pour créer un hébergeur de fichiers

J'ai repris l'idée de MEGAUPLOAD qui héberge les fichiers sur la forme XXXXXXXX // 8 caractères

donc pour accéder au lien, on y va pas /?d=XXXXXXXXX

Il est également enregistré sous cette forme, sans extension

Après pour l'extension, c'est enregistré dans la base de données

Donc le fichier change de nom lors du téléchargement

donc image.png ou autre

Le problème est que pour tous fichiers textes que je télécharge, ça me met le code source de la page.

et pour les images, Windows me dit qu'il ne peut ouvrir l'image ou vidéo.



Un peu de code pour mieux comprendre
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;
		
	}
	
	function Convert($bytes, $to = 'mo')
	{
		if ($bytes >= 1024*1024*1024)
		{
			return round(($bytes / 1024)/1024/1024, 2) ." GB";
		}
		
		elseif ($bytes >= 1024*1024)
		{
			return round(($bytes / 1024)/1024, 2) ." MB";
		}

		elseif ($bytes >= 1024)
		{
			return round(($bytes / 1024), 2) ." KB";
		}
			
		else { return $bytes ." Bytes"; }
	}
La page qui télécharge le fichier
$result = dbquery("SELECT * FROM files WHERE repertory = '" . filter($_GET['d']) . "'");

if (mysql_num_rows($result) >= 1)
{
	while ($d = mysql_fetch_assoc($result))
	{
		$file_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);
}


switch(strrchr(basename($file_name), ".")) {

case ".gz": $type = "application/x-gzip"; break;
case ".tgz": $type = "application/x-gzip"; break;
case ".zip": $type = "application/zip"; break;
case ".pdf": $type = "application/pdf"; break;
case ".png": $type = "image/png"; break;
case ".gif": $type = "image/gif"; break;
case ".jpg": $type = "image/jpeg"; break;
case ".txt": $type = "text/plain"; break;
case ".htm": $type = "text/html"; break;
case ".html": $type = "text/html"; break;
default: $type = "application/octet-stream"; break;

}

if (FILE_EXIST)
{
	if (isset($_POST['premium']) && $users->GetUserVar(USER_ID, 'rank') >= 2 || isset($_POST['submit']))
	{
		if (file_exists("files/" . $repertory))
		{
			header("Content-disposition: attachment; filename= $file_name"); 
			header("Content-Type: application/force-download"); 
			header("Content-Transfer-Encoding: $type \n"); // Surtout ne pas enlever le \n
			header("Content-Length: ". filesize("files/" . $repertory)); 
			header("Pragma: no-cache"); 
			header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); 
			header("Expires: 0"); 
			flush(); 
			readfile("files/" . $repertory); 
			exit();
		}
	}

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

Désolé si plusieurs postes du même style ont été postés, mais j'aimerai que l'on m'éclairci-ce.
Merci d'avance pour votre aide.

Vous pouvez essayer l'UPLOAD sur http://www.visualdevelopment.fr