Ъплоад на картинки с определен размер

cold_zero

Registered
Здравейте,

Търся PHP скрипт за ъплоад на картинки с определена големина. В смисъл да могат да се качват файлове с големина 100 на 100px. и по възможност да може да се качват и картинки до 6KB примерно. Благодаря предварително!
 

jooorooo

Registered
Код:
<?php
//------------------------------------
// Script re'alise' par Webdeb73
// Le 17/10/2004
// Licence GNU/GPL
// http://www.webmaster-debutant.net
// webmaster@webmaster-debutant.net
//-------------------------------------

//----------------------------
//  DEFINITION DES VARIABLES 
//----------------------------

$target     = 'upload/';  // Repertoire cible
$extension  = 'jpg';      // Extension du fichier sans le .
$max_size   = 100000;     // Taille max en octets du fichier
$width_max  = 100;        // Largeur max de l'image en pixels
$height_max = 100;        // Hauteur max de l'image en pixels

//---------------------------------------------
//  DEFINITION DES VARIABLES LIEES AU FICHIER
//---------------------------------------------

$nom_file   = $_FILES['fichier']['name'];
$taille     = $_FILES['fichier']['size'];
$tmp        = $_FILES['fichier']['tmp_name'];

//----------------------
//  SCRIPT D'UPLOAD
//----------------------
?>
<html>
    <head>
        <title>Upload d'une image sur le serveur !</title>
    </head>
    <body>
<?php
if(!empty($_POST['posted'])) {
    // On ve'rifie si le champ est rempli
    if(!empty($_FILES['fichier']['name'])) {
        // On ve'rifie l'extension du fichier
        if(substr($nom_file, -3) == $extension) {
            // On re'cupe`re les dimensions du fichier
            $infos_img = getimagesize($_FILES['fichier']['tmp_name']);
            
            // On ve'rifie les dimensions et taille de l'image
            if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size)) {
                // Si c'est OK, on teste l'upload
                if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES['fichier']['name'])) {
                    // Si upload OK alors on affiche le message de re'ussite
                    echo '<b>Image uploade'e avec succe`s !</b>';
                    echo '<hr />';
                    echo '<b>Fichier :</b> ', $_FILES['fichier']['name'], '<br />';
                    echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />';
                    echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />';
                    echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />';
                    echo '<hr />';
                    echo '<br /><br />';
                } else {
                    // Sinon on affiche une erreur syste`me
                    echo '<b>Proble`me lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />';
                }
            } else {
                // Sinon on affiche une erreur pour les dimensions et taille de l'image
                echo '<b>Proble`me dans les dimensions ou taille de l\'image !</b><br /><br />';
            }
        } else {
            // Sinon on affiche une erreur pour l'extension
            echo '<b>Votre image ne comporte pas l\'extension .jpg !</b><br /><br />';
        }
    } else {
        // Sinon on affiche une erreur pour le champ vide
        echo '<b>Le champ du formulaire est vide !</b><br /><br />';
    }
}
?>        <form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">
            <b>Envoyer le fichier :</b><br /><br />
            <input type="hidden" name="posted" value="1" />
            <input name="fichier" type="file" />
            <input type="submit" value="Uploader" />
        </form>
    </body>
</html>

Но не е тестван.
 

cold_zero

Registered
Работи :)))))))))) А как да направя да могат да се качват и gif ?? Напраних всякакви комбинации, но... :( Примерно:

Код:
$extension  = 'jpg, gif';
$extension  = 'jpg , gif';

Никое не става от двете :cry:
 

cold_zero

Registered
Намерих един много добър скрипт за ъплоад на картинки. Ето upload.php
Код:
<?php
        /* Our way of uploading is different from any script you 
	download off the internet we have gone all out to provide
	you the best script we could make */

	require('page_header.php');
	$file_count = 0;
  		foreach($_FILES['userfile']['error'] as $key => $value){
			$file = array(
				'name' => $_FILES['userfile']['name'][$key],
				'size' => $_FILES['userfile']['size'][$key],
				'tmp' => $_FILES['userfile']['tmp_name'][$key],	
				'error' => $_FILES['userfile']['error'][$key],
				'rand' => str_shuffle(strtolower(substr(base64_encode(md5(base64_encode(rand()))), 0, 20)))
				     );

							if($file['error'] == 0 || 
							$file['error'] == 1 || 
							$file['error'] == 2 || 
							$file['error'] == 3 || 
							$file['error'] == 5 || 
							$file['error'] == 6 || 
							$file['error'] == 7 || 
							$file['error'] == 8){

				$file_count++;
				if($file_count>1){
				echo "<br><div class='divider'></div><br>\n";
				}

					$extension = file_type($file['name']);
					$filename = $file['rand'].".".$extension;
					$uplogs_file = fopen("logs/upload_logs.txt", 'ab');

			if($_CONFIG['path'] == $_CONFIG['tpath']){
				generror("Uploads directory and thumbnails directory can't be the same or you will have problems !");
			}
			elseif(!is_dir($_CONFIG['path'])){
				generror("Upload directory \"".$_CONFIG['path']."\" does not exist");
			}
			elseif(!is_dir($_CONFIG['tpath'])){
				generror("Thumbnails directory \"".$_CONFIG['tpath']."\" does not exist");
			}
			elseif(!is_writable($_CONFIG['path'])){
				generror("Upload directory is not writable");
			}
			elseif(!is_writable($_CONFIG['tpath'])){
				generror("Thumbnails directory is not writable");
			}
			elseif(!array_search($extension, $_CONFIG['allowed'])){
				generror("Wrong file type ! - File : \"".$file['name']."\"");
			}
			elseif($file['size']>$_CONFIG['max_size']){
				generror("File size is too large - File : \"".$file['name']."\"");
			}
			elseif($file['error']>0){
				generror("File Error : <b>".$file['error']."</b> - View <a href='http://us2.php.net/manual/en/features.file-upload.errors.php'>php.net</a> for information on file errors - File : \"".$file['name']."\"");
			}
			elseif(file_exists($_CONFIG['path'].$filename)){
				generror("File already exists ! - File : \"".$file['name']."\"");
			}
			elseif(!move_uploaded_file($file['tmp'], $_CONFIG['path'].$filename)){
				generror("Unable to upload ! - File : \"".$file['name']."\"");
			}
			elseif(!chmod($_CONFIG['path'].$filename, 0777)){
				generror("Unable to change file permission ! - File : \"".$file['name']."\"");
			}
			elseif(!$uplogs_file){
				generror("Cant open the uploads log file");
			}
			elseif(!fwrite($uplogs_file, "[".$filename." | ".$_SERVER["REMOTE_ADDR"]." | ".date('D M d, Y g:i a')." | ".$file['name']."]\n")){
				generror("Cant write to file log");
			}else{

			fclose($uplogs_file);

			createthumbs($_CONFIG['path'].$filename, $_CONFIG['tpath'].$filename,$_CONFIG['thumb_w'],$_CONFIG['thumb_h']);

			display_results();

							}
		}
		}

			if($file_count == "0"){
				generror("Nothing to do ! Please go back and open a file !");
			}

	require('page_footer.php');
?>
Та въпроса ми е как мога в него да направя така, че като ъплоад картинката да се преименува на $user в смисъл да използва сесията на потлебителя и да се преименува с неговото потребитерско име?
 

bafitu

Registered
махаш това:
$filename = $file['rand'].".".$extension;
и го заменяш :
$filename = $user.".".$extension;

и трябва да стане.. май
 

cold_zero

Registered
bafitu, стана много благодаря! :wink:

Сега да питам как може да се показват само файловете качени от дадения потребител и да се трият само от него. Файла който трябва да се промени е:

Код:
<?php
	require('page_header.php');
?>
<table cellpadding="4" cellspacing="1" border="0" width="100%">
<tr>
<th>Filename</th>
<th>File Size</th>
<th>Date uploaded</th>
<?php
	if(extension_loaded("mime_magic")) {
		echo "<th>Mime type</th>\n";
	}
?>
<th>File permission</th>
<th>Download</th>
</tr>
<?php
	$path = $_CONFIG['path'];
	$file_count = 0;
	$dh  = opendir($path);
		while (false !== ($filename = readdir($dh))) {
			$files[] = $filename;
		}
	sort($files);
		foreach ($files as $file) {
			$full = $path.$file;
				if(strlen($file)>30) {
					$file = substr($file, 0, 30) . '...';
				}
			if($file != '.' && $file != '..' && $file != 'index.php' && $file != 'index.html' && $file != "Thumbs.db"){
					$file_count++;
				if($class == "row1"){
					$class = "row2";
				}else{
					$class = "row1";
				}
			$extension = file_type($file);
				if($extension == "bmp" || $extension == "ico"){
					$thumb = $full;	
				}else{
					$thumb = $_CONFIG['tpath'].$file;
				}	
		?>
<tr>
<?php
	switch($_CONFIG['dir_view']){
		case 'thumb':
			echo '<td class="'.$class.'" align="left"><a href="viewer.php?file='.$file.'"><center><img src="'.$thumb.'" width="'.$_CONFIG['thumb_w'].'" height="'.$_CONFIG['thumb_h'].'" alt="'.$file.'" /></center></a></td>';
			break;
		case 'links':
			echo '<td class="'.$class.'" align="left"><a href="viewer.php?file='.$file.'"><b>'.$file.'</b></a></td>';
			break;
		default:
			echo '<td class="'.$class.'" align="left"><a href="viewer.php?file='.$file.'"><center><img src="'.$thumb.'" width="'.$_CONFIG['thumb_w'].'" height="'.$_CONFIG['thumb_h'].'" alt="'.$file.'" /></center></a></td>';
	}
?>
<td class="<?php echo $class; ?>" align="left"><?php echo filesize($full); ?>  KB</td>
<td class="<?php echo $class; ?>" align="left"><?php echo date ("M d Y h:i:s A", filemtime($full)); ?></td>
<?php
	if(extension_loaded("mime_magic")) {
		echo '<td class="'.$class.'" align="left">'.mime_content_type($full).'</td>';
	}
?>
<td class="<?php echo $class; ?>" align="left"><?php echo substr(sprintf('%o', fileperms($full)), -4); ?></td>
<td class="<?php echo $class; ?>" align="left"><a href="download.php?download=<?php echo basename($full); ?>"><b>Download</b></a></td>
</tr>
<?php
				}
			}
?>
</table>
<?php
	if($file_count<1){
		echo "<br/>";
		generror("Directory is empty!");
	}
	require('page_footer.php');
?>
 

Admin

Registered
bafitu каза:
махаш това:
$filename = $file['rand'].".".$extension;
и го заменяш :
$filename = $user.".".$extension;

и трябва да стане.. май

То това работи ама не разбрах потребителя колко файла има право да качва.
Така ми се струва, че всикчи файлове които качва ще са с име
$user.gif .
$extension може да е равно само на .gif или .jpg нали?

Ако е потребител pepo ще може да създава една и съща картинка с име
pepo.gif или pepo.jpg

cold_zero... ти пробва ли да качваш няколко картинки?

Ако качиш 4-5 картинки как ще се казват те и в коя директория се upload-ват?
 

cold_zero

Registered
Ще се качват в директория - upload
Ако потребител pepo качи картинка, то тя ще се преименува на pepo.gif/jpg
Мисълта ми е може ли да се направи така че само този потребител, който си е качил картинката да може да си я трие.
 

Горе