Bilder Upload, mit nummer als dateiname
Moin
Also ich suche ein ganz normales bider upload script (muss jetzt net so toll wie z.b. imageshrink etc,)
Aber es muss
- Den link zum bild anzeigen
- Dem bild einen automatisch generierten datei namen geben.
Folgendes script habe ich:
Das wäre genau soetwas.
Aber : es ist für das "alte" PHP.
Für das "neue" gibt es auch welche, aber die generieren net automatisch den datei namen, sondern lassen es unverändert
LG
Also ich suche ein ganz normales bider upload script (muss jetzt net so toll wie z.b. imageshrink etc,)
Aber es muss
- Den link zum bild anzeigen
- Dem bild einen automatisch generierten datei namen geben.
Folgendes script habe ich:
<html>
<head>
<title>Upload</title>
</head>
<body>
<?
if($action){
// --------------------------------
// Diverse Variablen
// --------------------------------
$path = "images/typen/"; // Url zum Speicherordner der großen Bilder
$thumb_path = "images/typen/thumb/"; // Url zum Speicherordner der Vorschaubilder
$config_width = "320"; // Bildbreite max. bei großem Bild
$config_height = "240"; // Bildhöhe max. bei großem Bild
$config_thumb_width = "80"; // Bildbreite max. bei Vorschaubild
$config_thumb_height = "60"; // Bildhöhe max. bei Vorschaubild
$resizequality = "70"; // Bildkompressionsrate 0-100
$deindomain = "http://www...........de/"; // unsere Domain
if ($HTTP_POST_FILES['userfile']['tmp_name']<> 'none')
{
// --------------------------------
// Get File Upload Info
// --------------------------------
$filename = $HTTP_POST_FILES['pic_file']['name'];
$filetype = $HTTP_POST_FILES['pic_file']['type'];
$filetmp = $HTTP_POST_FILES['pic_file']['tmp_name'];
// --------------------------------
// Check file type
// --------------------------------
switch ($filetype)
{
case 'image/jpeg':
case 'image/jpg':
case 'image/pjpeg':
$pic_filetype = '.jpg';
break;
case 'image/png':
case 'image/x-png':
$pic_filetype = '.png';
break;
case 'image/gif':
$pic_filetype = '.gif';
break;
default:
die("Falsches Dateiformat. Nur JPEG, GIF oder PNG erlaubt!");
}
// --------------------------------
// Generate filename
// --------------------------------
srand((double)microtime()*1000000); // for older than version 4.2.0 of PHP
do
{
$pic_filename = md5(uniqid(rand())) . $pic_filetype;
}
while( file_exists($path . $pic_filename) );
// --------------------------------
// Move this file to upload directory
// --------------------------------
$ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';
if ( @$ini_val('open_basedir') != '' )
{
if ( @phpversion() < '4.0.3' )
{
die("open_basedir is set and your PHP version does not allow move_uploaded_file<br /><br />Please contact your server admin");
}
$move_file = 'move_uploaded_file';
}
else
{
$move_file = 'copy';
}
$move_file($filetmp, $path . $pic_filename);
@chmod($path . $pic_filename, 0777);
// --------------------------------
// Well, it's an image. Check its image size
// --------------------------------
$pic_size = getimagesize($path . $pic_filename);
$pic_width = $pic_size;
$pic_height = $pic_size[1];
// --------------------------------
// This image is okay, we can cache its thumbnail now
// --------------------------------
if($pic_filetype != '.gif')
{
$gd_errored = FALSE;
switch ($pic_filetype)
{
case '.jpg':
$read_function = 'imagecreatefromjpeg';
break;
case '.png':
$read_function = 'imagecreatefrompng';
break;
}
$src = @$read_function($path . $pic_filename);
if (!$src)
{
$gd_errored = TRUE;
$pic_thumbnail = '';
}
else if( ($pic_width > $config_thumb_width) or ($pic_height > $config_thumb_height) )
{
// Resize it
if ($pic_width > $pic_height)
{
$thumbnail_width = $config_thumb_width;
$thumbnail_height = $config_thumb_width * ($pic_height/$pic_width);
}
else
{
$thumbnail_height = $config_thumb_height;
$thumbnail_width = $config_thumb_height * ($pic_width/$pic_height);
}
$thumbnail = @imagecreatetruecolor($thumbnail_width, $thumbnail_height);
$resize_function = 'imagecopyresampled';
@$resize_function($thumbnail, $src, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $pic_width, $pic_height);
}
else
{
$thumbnail = $src;
}
if (!$gd_errored)
{
$pic_thumbnail = $pic_filename;
// Write to disk
switch ($pic_filetype)
{
case '.jpg':
@imagejpeg($thumbnail, $thumb_path . $pic_thumbnail, $resizequality);
break;
case '.png':
@imagepng($thumbnail, $thumb_path . $pic_thumbnail);
break;
}
@chmod($thumb_path . $pic_thumbnail, 0777);
} // End IF $gd_errored
} // End Thumbnail Cache
// --------------------------------------
// OK lets resize the original picture
// --------------------------------------
if($pic_filetype != '.gif')
{
$gd_errored = FALSE;
switch ($pic_filetype)
{
case '.jpg':
$read_function = 'imagecreatefromjpeg';
break;
case '.png':
$read_function = 'imagecreatefrompng';
break;
}
$src = @$read_function($path . $pic_filename);
if (!$src)
{
$gd_errored = TRUE;
$pic_resize = '';
}
else if( ($pic_width > $config_width) or ($pic_height > $config_height) )
{
// Resize it
if ( (($pic_width / $pic_height) > ($config_width / $config_height)) )
{
$resize_width = $config_width;
$resize_height = $config_width * ($pic_height/$pic_width);
}
else
{
$resize_height = $config_height;
$resize_width = $config_height * ($pic_width/$pic_height);
}
$resize = @imagecreatetruecolor($resize_width, $resize_height);
$resize_function = 'imagecopyresampled';
@$resize_function($resize, $src, 0, 0, 0, 0, $resize_width, $resize_height, $pic_width, $pic_height);
}
else
{
$resize = $src;
}
if (!$gd_errored)
{
$pic_resize = $pic_filename;
// Write to disk
switch ($pic_filetype)
{
case '.jpg':
@imagejpeg($resize, $path . $pic_resize, $resizequality);
break;
case '.png':
@imagepng($resize, $path . $pic_resize);
break;
}
@chmod($path . $pic_resize, 0777);
} // End IF $gd_errored
} // End Picture Resize
echo "Datei ist auf dem Server! <br><br>";
echo "Url des großen Bildes: <a href=\"$deindomain$path$pic_filename\" target=\"_blank\">".$deindomain.$path.$pic_filename;
echo "</a> <br><img src=\"$deindomain$path$pic_filename\"><br><br>";
echo "Url des Vorschaubildes: <a href=\"$deindomain$thumb_path$pic_filename\" target=\"_blank\">".$deindomain.$thumb_path.$pic_filename;
echo "</a> <br><img src=\"$deindomain$thumb_path$pic_filename\">";
}
} else { ?>
<form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>">
<input type="hidden" name="MAX_FILE_SIZE" value="4000000">
<br>
<strong>File Upload</strong> <br>
<br>
<input name="pic_file" type="file" size=40>
<br>
<br>
<input type="submit" name="action" value="Speichern">
</form>
<?
}
// -----------------------------------------
// Das Script kann unter Verwendung
// dieses Vermerks uneingeschränkt
// genutzt / verändert werden.
// © www.marc-gutt.de
// -----------------------------------------
?>
</body>
</html>
Aber : es ist für das "alte" PHP.
Für das "neue" gibt es auch welche, aber die generieren net automatisch den datei namen, sondern lassen es unverändert
LG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 146837
Url: https://administrator.de/contentid/146837
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
1 Kommentar
Namen generieren ist nicht schwer. Nur muss man schon wissen was man möchte:
- durchnummeriert (1.jpg, 2.jpg, etc.)
- hash (a3cca2b2aa1e3b5b3b5aad99a8529074.jpg, etc.)
- uvm.
Sollten es viele, viele Bilder werden ist auf jeden Fall dazu angeraten die Bilder zu verteilen (dafür nehme ich gerne Hashwerte auseinander).
Ohne nachgesehen zu haben wird es aber bestimmt auch massig vernünftige Image-Hosting-Skripte geben die weitaus mehr können als du haben möchtest...
Mfg
Enclave
- durchnummeriert (1.jpg, 2.jpg, etc.)
- hash (a3cca2b2aa1e3b5b3b5aad99a8529074.jpg, etc.)
- uvm.
Sollten es viele, viele Bilder werden ist auf jeden Fall dazu angeraten die Bilder zu verteilen (dafür nehme ich gerne Hashwerte auseinander).
Ohne nachgesehen zu haben wird es aber bestimmt auch massig vernünftige Image-Hosting-Skripte geben die weitaus mehr können als du haben möchtest...
Mfg
Enclave