Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Bilder und PHP





Frage

Hallo, Bei einen Comunities im Internet gibt es die Möglichkeit, nach dem Erstellen eines Accounts ein Benutzerbild hochzuladen. Ich weiß, wie ich das mithilfe eines Formulars mache und die Bilder auf dem Server speichere. Ist es möglich die Bilder, die vom user hochgeladen werden, zu verkleiner, umzubenennen oder es sogar automatisch zu bearbeiten? (Mit bearbeiten meine ich, das Bild beispielsweise von farbe nach schwarz-weiß zu färben, oder in eine Ecke des Bildes die Adresse der Homepage zu schreiben.) Ich hoffe mir kann jemand helfen! Mfg. rotte

Antwort 1 von MixMax

entweder du lädst alle bilder runter und machst das selber per software (z.B. Batchverarbeitung in Irfanview)

oder es geht nicht ohne serverscripts...

du könntest das Bild natürlich noch mit Text überlegen indem du per HTML einen Layer über das Bild legst - das kann aber bei manchen Browsern dann zu falschdarstellung der ganzen Seite mit Bild führen.

Antwort 2 von Nessus

Hi,

Serverseitig bietet PHP einige Möglichkeiten.
Ich poste einfach mal ein Script das ich mal vor einiger Zeit erstellt hatte:
<?php
require("./dbconn.inc.php");
$pfad="/www/Pfad/zum/imageordner/";
  if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) {
    move_uploaded_file($_FILES['probe']['tmp_name'], $_FILES['probe']['name']);
     }
// ********  file nicht erlaubt ************
$file_ending = explode(".", $_FILES['probe']['name']);
$file_ending[1] = strtoupper($file_ending[1]);
if  (!($file_ending[1] == "JPEG") && (!($file_ending[1] == "JPG")))
{
unlink($_FILES['probe']['name']);
header("Location:http://www.blabla/admin/index.php?bildup=3&bild=$BILD&ort=$ort");
die();
}
// Grafik verkleinern---------------------------------------------------------------------------- //
$tstamp = time();
$BILD = $_FILES['probe']['name'];
$test =time();
$BILD1 = "$pfad/$ort/$test$BILD";
$quali = '100';
// ---------------------------------------------------------------------------- //
function bild_resize($altes_bild, $neues_bild, $stufe, $quali) {
//Bildbreite
$bildbreite =400;


    // altes Bild
    $im1 = imageCreateFromJPEG($altes_bild);
    $bb = imageSX($im1);
    $hh = imageSY($im1);
	$nn=$bb/$bildbreite;
	$tt=$hh/$nn;

    // neues Bild
    $im2 = ImageCreateTrueColor($bildbreite, $tt );
	
    imagecopyresized($im2, $im1, 0, 0, 0, 0, $bildbreite,$tt, $bb, $hh);

    // bild erstellen
$rr= $tt-10;
imagettftext($im2, 10, 0, 100, $rr, $font_c, "./fonts/arial.ttf", "text fürs bild"); 
imagejpeg ($im2, $neues_bild, $quali);

    // speicher freigeben
    imageDestroy($im1);
    imageDestroy($im2);
    }

bild_resize($BILD, $BILD1, $skalierung, $quali);
//Temp löschen

unlink($_FILES['probe']['name']);

//Bildername in DB eintragen

$BILD= "$test$BILD";
mysql_connect($host,$user,$password)
   or die("Abbruch: Verbindung zu '$host'"
         ." konnte nicht hergestellt werden.");
mysql_select_db($database)
   or die("Abbruch: Datenbank '$database' konnte nicht"
         ." selektiert werden.<br><br>MySQL sagt: ".mysql_error());

$query    = "INSERT INTO `bilder` (`ort`,`bild`) VALUES ('".$ort."','".$BILD."')";
mysql_query($query);

$sql    = "INSERT INTO `infoxml` (`file`,`short`,`long`,`verzeichnis`) VALUES ('".$BILD."','".$short."','".$long."','".$ort."')";
mysql_query($sql);
//XML-Datei erstellen
$datei=fopen("$pfad$ort/info.xml","w+");
$query2= "SELECT `infoxml`.`file`, `infoxml`.`short`, `infoxml`.`long` FROM infoxml WHERE (`infoxml`.`verzeichnis` ='$ort')";
$result = @mysql_query($query2);
fputs($datei,"<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n");
fputs($datei,"	<photoit>\n");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    fputs($datei,"		<info file=\"".$row['file']."\">\n");
    fputs($datei,"		<short>".$row['short']."</short>\n");
    fputs($datei,"		<long>".$row['long']."</long>\n");
    fputs($datei,"	</info>\n");
}
fputs($datei,"</photo>\n");
fclose($datei);
//XML
header("Location:http://www.blabla/admin/index.php?bildup=1&bild=$BILD&ort=$ort");

?>


Antwort 3 von Nessus

Dieses kleine Programm macht folgendes:
1. Upload der Datei
2. Testen der Datei auf Gültigkeit
3. Grafik verkleinern
4. Text einfügen
5. In ein bestimmtes Verzeichnis speichern
6. Dateiname in eine Datenbank legen
7. XML-Datei mit Übergabewerten erstellen und abspeichern.

Nehme einfach raus was du benötigst.

HTH

Nessus

Antwort 4 von rotte

Danke!
Hat mir sehr geholfen.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: