Vorheriges Thema: Nächstes Thema: |
Autor |
Nachricht |
marck48 Häufiger Poster
Anmeldungsdatum: 10.02.2009 Beiträge: 25 Wohnort: Eberswalde
|
Verfasst am: 21.04.2009 09:10:46 Titel: Thumbnail automatisch beim bildupload erstellen |
|
|
Hallo,
ich hab wieder eine Frage :
Durch welche veränderungen bekomme ich es hin, das beim Bild-upload automatisch ein Thumbnail in ein extra Verzeichnis erstellt wird...
ich bin immernoch anfänger und würde mich über jede hilfe sehr freuen
vielen dank
marck
das script für den upload
Code: |
<?php
{
if($_FILES['userfile']['tmp_name'])
{
$file = $_FILES['userfile']['tmp_name'];
$filesize = $_FILES['userfile']['size'];
$path = "../fotos/";
//Type abfangen
$filetype = $_FILES['userfile']['type'];
switch($filetype)
{
case "image/pjpeg":
$type = ".jpg";
break;
case "image/gif":
$type = ".gif";
break;
case "image/jpeg":
$type = ".jpg";
break;
case "image/x-png":
$type = ".png";
break;
//usw.
}
//anzahl der dateien im Verzeichnis
$all_files = count(scandir($path)) - 2;
//Jetzt individuellen Namen für das Bild generieren
$myFilename = "bild_".$all_files.$type;
if (!file_exists($path.$myFilename))
{
if(!copy($file,$path.$myFilename))
echo "Konnte nicht speichern.";
else
echo "Gespeichert.";
}
else
{
echo "Foto schon vorhanden.";
}
}
|
|
|
Nach oben |
|
|
Simon Häufiger Poster
Anmeldungsdatum: 03.05.2005 Beiträge: 195 Wohnort: Schweiz
|
|
Nach oben |
|
|
marck48 Häufiger Poster
Anmeldungsdatum: 10.02.2009 Beiträge: 25 Wohnort: Eberswalde
|
Verfasst am: 23.04.2009 08:29:08 Titel: Thumbnail automatisch beim bildupload erstellen |
|
|
Hallo
vielen Dank für die Antwort...
kann ich dieses script aus dem oben genannten Tutorial einfach an meins anhängen das die Thumbnails beim uploaden erzeugt werden?
Die Originalfotos werden in das Verzeichnis fotos/ kopiert und die Thumbnails sollen mit dem gleichen namen in fotos/cache/ kopiert werden.
Gruß
marck |
|
Nach oben |
|
|
marck48 Häufiger Poster
Anmeldungsdatum: 10.02.2009 Beiträge: 25 Wohnort: Eberswalde
|
Verfasst am: 24.04.2009 15:33:26 Titel: Thumbnail automatisch beim bildupload erstellen |
|
|
Hallo,
das mit dem thumbnails hab ich jetzt hin bekommen danke für den tip nochmal.
Jetzt würde ich noch gern das script weiter oben zum upload von mehreren bildern gleichzeitig benutzen...
weiß aber leider nicht wie ich das ändern kann...
vielleicht kann mir da jemand helfen.
Danke und Gruß
marck |
|
Nach oben |
|
|
Simon Häufiger Poster
Anmeldungsdatum: 03.05.2005 Beiträge: 195 Wohnort: Schweiz
|
Verfasst am: 25.04.2009 20:07:03 Titel: |
|
|
Windows verbietet dir den upload von mehreren Dateien gleichzeitig.
Einzige Möglichkeit: Lade die Bilder als Zip-Archiv hoch und entpacke es online.
Gruss |
|
Nach oben |
|
|
marck48 Häufiger Poster
Anmeldungsdatum: 10.02.2009 Beiträge: 25 Wohnort: Eberswalde
|
Verfasst am: 29.04.2009 07:59:04 Titel: Thumbnail automatisch beim bildupload erstellen |
|
|
Hallo,
hier auf der Seite bei "php,Java und Co" -->"php-Beispiele wird beschrieben wie man mehrere Bilder gleichzeitig uploaden kann mit mehreren input-feldern im html-formular ich bekomme es nur nicht hin es auf mein Script zu übertragen. Ich habe es mal weiter unten angezeigt
Code: |
<?php
{
if($_FILES['userfile']['tmp_name'])
{
$file = $_FILES['userfile']['tmp_name'];
$filesize = $_FILES['userfile']['size'];
$path = "../fotos/";
//Type abfangen
$filetype = $_FILES['userfile']['type'];
switch($filetype)
{
case "image/pjpeg":
$type = ".jpg";
break;
case "image/gif":
$type = ".gif";
break;
case "image/jpeg":
$type = ".jpg";
break;
case "image/x-png":
$type = ".png";
break;
//usw.
}
//anzahl der dateien im Verzeichnis
$all_files = count(scandir($path)) - 2;
//Jetzt individuellen Namen für das Bild generieren
$myFilename = "bild_".$all_files.$type;
if (!file_exists($path.$myFilename))
{
if(!copy($file,$path.$myFilename))
echo "Konnte nicht speichern.";
else
echo "Gespeichert.";
}
else
{
echo "Foto schon vorhanden.";
}
}
//thumbnail erstellen
$path="../fotos/";
$PicPathOut="../fotos/cache/";
// Orginalbild
// Bilddaten ermitteln
$size= GetImageSize("$path"."$myFilename");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=100;
$neueHoehe= intval($hoehe*$neueBreite/$breite);
if($size[2]==1) {
// GIF
$altesBild= imagecreatefromgif("$path"."$myFilename");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
imageGIF($neuesBild,"$PicPathOut"."$myFilename");
}
if($size[2]==2) {
// JPG
$altesBild= ImageCreateFromJPEG("$path"."$myFilename");
$neuesBild= imagecreatetruecolor($neueBreite,$neueHoehe);
imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$PicPathOut"."$myFilename");
}
if($size[2]==3) {
// PNG
$altesBild= ImageCreateFromPNG("$path"."$myFilename");
$neuesBild= imagecreatetruecolor($neueBreite,$neueHoehe);
imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImagePNG($neuesBild,"$PicPathOut"."$myFilename");
}
|
Ich würde mich sehr freuen wenn mir jemand helfen könnte
Gruß
marck |
|
Nach oben |
|
|
Frosty Häufiger Poster
Anmeldungsdatum: 27.10.2008 Beiträge: 221
|
Verfasst am: 29.04.2009 09:22:33 Titel: |
|
|
Ahoi,
hier hast du eine Möglichkeit:
Code: |
<?php
if($_FILES['userfile']['tmp_name'])
{
$file = $_FILES['userfile']['tmp_name'];
$filesize = $_FILES['userfile']['size'];
$path = "../fotos/";
//Type abfangen
$filetype = $_FILES['userfile']['type'];
switch($filetype)
{
case "image/pjpeg":
$type = ".jpg";
break;
case "image/gif":
$type = ".gif";
break;
case "image/jpeg":
$type = ".jpg";
break;
case "image/x-png":
$type = ".png";
break;
//usw.
}
//anzahl der dateien im Verzeichnis
$all_files = count(scandir($path)) - 2;
//Jetzt individuellen Namen für das Bild generieren
$myFilename = "bild_".$all_files.$type;
if (!file_exists($path.$myFilename))
{
if(!copy($file,$path.$myFilename))
echo "Konnte nicht speichern.";
else
//Jetzt das Bild herunterskalieren für das Thumb
$bild_location = $path.$myFilename;
$save_name = "../fotos/cache/".$myFilename;
resize($bild_location, $save_name, 50);
echo "Gespeichert.";
}
else
{
echo "Foto schon vorhanden.";
}
}
/** FUNKTION: Bilder auf eine bestimmte Größe skalieren **/
function resize($file, $save, $width, $height=false)
{
if(!$height)
$height = $width;
$infos = @getimagesize($file);
$iWidth = $infos[0];
$iHeight = $infos[1];
$iRatioW = $width / $iWidth;
$iRatioH = $height / $iHeight;
if($iRatioW < $iRatioH)
{
$iNewW = $iWidth * $iRatioW;
$iNewH = $iHeight * $iRatioW;
}
else
{
$iNewW = $iWidth * $iRatioH;
$iNewH = $iHeight * $iRatioH;
} // if
if($infos[2] == 1)
$imgA = @imagecreatefromgif($file);
elseif($infos[2] == 2)
$imgA = @imagecreatefromjpeg($file);
elseif($infos[2] == 3)
$imgA = @imagecreatefrompng($file);
$imgB = @imagecreatetruecolor($iNewW, $iNewH);
if(!$imgB)
$imgB = @imagecreate($iNewW, $iNewH);
if(!@imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]))
@imagecopyresized($imgB, $imgA, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]);
$re = null;
umask(0000);
if($infos[2] == 1)
$re = imagegif($imgB, $save);
elseif($infos[2] == 2)
$re = imagejpeg($imgB, $save, 100);
else
$re = imagepng($imgB, $save);
return true;
}
?> |
LG
Frost |
|
Nach oben |
|
|
Frosty Häufiger Poster
Anmeldungsdatum: 27.10.2008 Beiträge: 221
|
Verfasst am: 29.04.2009 09:35:28 Titel: |
|
|
Oh, sorry hab nicht gelesen: Du möchtest ja mehrfachupload.
Dann sollte es so in etwa aussehen. Beachte das Formular ganz unten!!!!!
Code: |
<?php
//Alle gesendeten Bilder durchlaufen
for($i=1;$i<=3;$i++)
{
$userfile_name = "userfile_".$i;
if($_FILES[$userfile_name]['tmp_name'])
{
$file = $_FILES[$userfile_name]['tmp_name'];
$filesize = $_FILES[$userfile_name]['size'];
$path = "../fotos/";
//Type abfangen
$filetype = $_FILES[$userfile_name]['type'];
switch($filetype)
{
case "image/pjpeg":
$type = ".jpg";
break;
case "image/gif":
$type = ".gif";
break;
case "image/jpeg":
$type = ".jpg";
break;
case "image/x-png":
$type = ".png";
break;
//usw.
}
//anzahl der dateien im Verzeichnis
$all_files = count(scandir($path)) - 2;
//Jetzt individuellen Namen für das Bild generieren
$myFilename = "bild_".$all_files.$type;
if (!file_exists($path.$myFilename))
{
if(!copy($file,$path.$myFilename))
echo "Konnte nicht speichern.";
else
//Jetzt das Bild herunterskalieren für das Thumb
$bild_location = $path.$myFilename;
$save_name = "../fotos/cache/".$myFilename;
resize($bild_location, $save_name, 50);
echo "Gespeichert.";
}
else
{
echo "Foto schon vorhanden.";
}
}
}
/** FUNKTION: Bilder auf eine bestimmte Größe skalieren **/
function resize($file, $save, $width, $height=false)
{
if(!$height)
$height = $width;
$infos = @getimagesize($file);
$iWidth = $infos[0];
$iHeight = $infos[1];
$iRatioW = $width / $iWidth;
$iRatioH = $height / $iHeight;
if($iRatioW < $iRatioH)
{
$iNewW = $iWidth * $iRatioW;
$iNewH = $iHeight * $iRatioW;
}
else
{
$iNewW = $iWidth * $iRatioH;
$iNewH = $iHeight * $iRatioH;
} // if
if($infos[2] == 1)
$imgA = @imagecreatefromgif($file);
elseif($infos[2] == 2)
$imgA = @imagecreatefromjpeg($file);
elseif($infos[2] == 3)
$imgA = @imagecreatefrompng($file);
$imgB = @imagecreatetruecolor($iNewW, $iNewH);
if(!$imgB)
$imgB = @imagecreate($iNewW, $iNewH);
if(!@imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]))
@imagecopyresized($imgB, $imgA, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]);
$re = null;
umask(0000);
if($infos[2] == 1)
$re = imagegif($imgB, $save);
elseif($infos[2] == 2)
$re = imagejpeg($imgB, $save, 100);
else
$re = imagepng($imgB, $save);
return true;
}
?>
<form action="" method="post" enctype="multipart/form-data">
Bilder:
<input type="file" name="userfile_1"><br />
<input type="file" name="userfile_2"><br />
<input type="file" name="userfile_3">
<input type="submit" name="new_image" value="OK">
</form> |
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|
|