Bildupload

oldputz1990

Erfahrenes Mitglied
Hallo!

Ich benutze zum Hochladen meiner Fotos "MultiPowUpload".

In letzter Zeit fällt mir auf, dass manche Bilder nicht hochgeladen werden.
Ich weiß aber nicht wiso.
Meistens sind es große Fotos...

Ich weiß einfach nicht mehr weiter...
Vl. könnt ihr mal drüberschaun...

Danke!


Die Fotos werden hier ausgearbeitet:
PHP:
<?php
error_reporting(E_ALL);




// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

echo 'Upload result:<br>'; // At least one symbol should be sent to response

	

if(isset($_GET['ordner']))
	{
		$ord = strip_tags($_GET['ordner']);

	}
	else
	{
		$ord = 'error';
	}
	
$teile = explode("-", $ord);
	
	$album = $teile[0];

	
$uploaddir = dirname($_SERVER['SCRIPT_FILENAME'])."/fotos/".$album."/";

$uploaddir_small = dirname($_SERVER['SCRIPT_FILENAME'])."/fotos/".$album."/small/";
$uploaddir_middle = dirname($_SERVER['SCRIPT_FILENAME'])."/fotos/".$album."/middle/";
$uploaddir_big = dirname($_SERVER['SCRIPT_FILENAME'])."/fotos/".$album."/big/";


$target_encoding = "ISO-8859-1";

echo '<pre>';


if(count($_FILES) > 0)
{
	$arrfile = pos($_FILES);
	
	$type1 = explode(".", $arrfile['name']);
	$type = $type1[1];
	
include("resize.php");


// Query für eintragen in DB

$insert = mysql_query("INSERT INTO `fotos-view` (`album`, `type`) VALUES ('$album', '$type')") OR DIE(mysql_error());

$abfrage = mysql_query("SELECT `id` FROM `fotos-view` ORDER by `id` DESC LIMIT 1") OR DIE(mysql_error());
$abfrage_erg = mysql_fetch_assoc($abfrage);

$name = $abfrage_erg['id'];

	$uploadfile = $uploaddir . iconv("UTF-8", $target_encoding,basename($arrfile['name']));
	


	$uploadfile_small = $uploaddir_small . iconv("UTF-8", $target_encoding,basename("$name.$type"));
	$uploadfile_middle = $uploaddir_middle . iconv("UTF-8", $target_encoding,basename("$name.$type"));
	$uploadfile_big = $uploaddir_big . iconv("UTF-8", $target_encoding,basename("$name.$type"));


scaleimage2(1024);
	if (copy($arrfile['tmp_name'], $uploadfile_big))
	   echo "File is valid, and was successfully uploaded.\n";
	   
	scaleimage(650);
	if (copy($arrfile['tmp_name'], $uploadfile_middle))
	   echo "File is valid, and was successfully uploaded.\n";
	      
	
	scaleimage2(150);
	if (move_uploaded_file($arrfile['tmp_name'], $uploadfile_small))
	   echo "File is valid, and was successfully uploaded.\n";   
}

else
	echo 'No files sent. Script is OK!'; //Say to Flash that script exists and can receive files

echo 'Here is some more debugging info:';
print_r($_FILES);

echo "</pre>";





?>

resize.php
PHP:
<?php



function scaleimage($ThumbnailBreite){

// Bildsignatur, die eingefügt werden soll (GIF, JPEG oder PNG)
$Bildpfad = "logo2.png";

$tmparr = pos($_FILES);
$Grafikdatei = $tmparr['tmp_name'];




$Bilddaten = getimagesize($Grafikdatei);


$OriginalBreite = $Bilddaten[0];

$OriginalHoehe = $Bilddaten[1];



if($OriginalBreite < $ThumbnailBreite)

{

    $ThumbnailBreite=$OriginalBreite;
    
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;

$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);


// Neue Grafik erstellen
if($Bilddaten[2] == 2)
{
  $Thumbnailgrafik = imagecreatetruecolor($ThumbnailBreite,$ThumbnailHoehe);
}
else
{
  $Thumbnailgrafik = imagecreate($ThumbnailBreite,$ThumbnailHoehe);
}



// Bildsignatur einlesen
$Bildinfos = getimagesize($Bildpfad);
switch($Bildinfos[2])
{
  case 1:
    // GIF-Bild
    $Bildsignatur = imagecreatefromgif($Bildpfad);
    break;
  case 2:
    // JPG-Bild
    $Bildsignatur = imagecreatefromjpeg($Bildpfad);
    break;
  case 3:
    // PNG-Bild
    $Bildsignatur = imagecreatefrompng($Bildpfad);
    break;
  default:
    // Error
    die("Bildsignatur ist kein Bild!");
}

// X-Y-Position rechnen
$x = $ThumbnailBreite - $Bildinfos[0];
$y = $ThumbnailHoehe - $Bildinfos[1];





if($Bilddaten[2]==1)

{
    $Originalgrafik = ImageCreateFromGIF($Grafikdatei);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageCopy($Thumbnailgrafik, $Bildsignatur, $x, $y, 0, 0, $Bildinfos[0], $Bildinfos[1]);
    ImageGIF($Thumbnailgrafik, $Grafikdatei);
}

elseif($Bilddaten[2]==2)
{
    $Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageCopy($Thumbnailgrafik, $Bildsignatur, $x, $y, 0, 0, $Bildinfos[0], $Bildinfos[1]);
    ImageJPEG($Thumbnailgrafik, $Grafikdatei, 85);
}

elseif($Bilddaten[2]==3)
{
    $Originalgrafik = ImageCreateFromPNG($Grafikdatei);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageCopy($Thumbnailgrafik, $Bildsignatur, $x, $y, 0, 0, $Bildinfos[0], $Bildinfos[1]);
    ImagePNG($Thumbnailgrafik, $Grafikdatei);
}


}

## 2



function scaleimage2($ThumbnailBreite){


$tmparr = pos($_FILES);
$Grafikdatei = $tmparr['tmp_name'];


$Bilddaten = getimagesize($Grafikdatei);


$OriginalBreite = $Bilddaten[0];

$OriginalHoehe = $Bilddaten[1];



if($OriginalBreite < $ThumbnailBreite)

{

    $ThumbnailBreite=$OriginalBreite;
    
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;

$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);


if($Bilddaten[2]==1)

{
    $Originalgrafik = ImageCreateFromGIF($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageGIF($Thumbnailgrafik, $Grafikdatei);
}

elseif($Bilddaten[2]==2)
{
    $Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageJPEG($Thumbnailgrafik, $Grafikdatei);
}

elseif($Bilddaten[2]==3)
{
    $Originalgrafik = ImageCreateFromPNG($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImagePNG($Thumbnailgrafik, $Grafikdatei);
}


}

?>
 
Ohne dass ich jetzt Dein Script angeschaut habe...evtl verhindern einfach die Einstellungen von memory_limit, upload_max_filesize und post_max_size in der php.ini das Hochladen grosser Bilder.
 
... oder sind einfach in ihrer Breite und Höhe zu groß, womit memory_limit überschritten wird.
Alles Dinge die man aber selber herausfinden kann.
 
Hallo!

Danke für euere Antworten.

Server: 16mb Memory limit
Ich habe soeben probiert, kleine Fotos hochzuladen (50kb)
funktioniert ebenfalls nicht.

Am Localhost (Memory_limt: 32mb) funktioniets allerdings schon?!

Hier die PHP info vom Server ( 16mb memory limit)
http://surl.se/ecdu

...
 
Zurück