Bilderupload mit Pixelgrößeüberprüfung

Bilderupload mit Umbennenung und Pixelüberprüfung

Hi,

Hab auf meiner <a href="http://www.ntsearch.com/search.php?q=Hp&v=55">Hp</a> ein Registrierungsscript, wo dann jeder sein eigenes Profil hat...

Nun möchte ich machen dass jeder ein eigenes Userpic raufladen kann...
Und es darf ZB nur 90mal90 Pixel groß sein

Es wäre noch schon wenn die Datei noch umbenannt wird.



So.. wie soll ich da anfangen hab zum Thema "upload" noch nichts gemacht.

Kann da wer helfen
SG aus GER
 
Zuletzt bearbeitet:
Ok, obere Frage hat sich ergeben, !SUCHEN IST GESUND!

Jedoch fehlen mir 2 Punkte.

1) Wie ändere ich den Namen
2) Wie überprüfe ich die Pxielgröße (also zb sie darf nicht größer als 90x90 sein)


sg
 
Hi, danke bei diesem RENAME steht:

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

kann ich da einfach

<?php
rename("altername.jpg", "neuername.jpg");
?>

?

2) das mit dem imagex und y kapier ich nicht....

könntest du mir das erklären?
 
zu 1) Klar kannst du das machen, nur solltest du bedenken dass dein Bild dafür im gleichen Verzeichnis liegen muss wie das Script und das Bild wird dann auch dort wieder gespeichert.
Alle Dateien einer Website ins Root Dir zu packen ist alles andere als löblich!

zu 2)

Du ermittelst sowohl Höhe als auch die Breite des hochgeladenen Bildes und vergleichst sie mit deinen Normwerten. Liegen sie drunter oder sind gleich wird das Bild akzeptiert, ist dies nicht der Fall gibste eine Meldung aus!

PHP:
# hier würde das Bild kommen durch Formular
$image = $_FILES['userfile']['tmp_name']

if(imagesx($image) <=90 && imagesy($images) <= 90) echo 'Alles Fit!';
else echo 'Sorry, das Bild ist zu groß!';

Hier noch ein Link zum Dateiupload: Steuerung von Dateiuploads @ php.net
 
Zuletzt bearbeitet:
Original geschrieben von stellenureinefrage
kann ich da einfach

<?php
rename("altername.jpg", "neuername.jpg");
?>
?
Nein, Du brauchst Diese Funktion nicht. Da Du die Datei ja per Formular hochlädst, kannst Du ja auch, wenn Du das Bild aus dem tmp-Ordner mittles move_uploaded_file() in den Ziel-Ordner verschiebst, einen neuen Dateinamen angeben.

Original geschrieben von stellenureinefrage
2) das mit dem imagex und y kapier ich nicht....

könntest du mir das erklären?
PHP:
<?
$int_max_width  = 90;
$int_max_height = 90;
$arr_size       = getimagesize('/pfad/zum/bild.jpg');

if($arr_size[0] <= $int_max_width && $arr_size[1] <= $int_max_height) {
    move_uploaded_file($dateiname,$zielpfad);
} else
    echo "Fehler: Das Bild ist zu groß";
}
?>
Also, Du überpüfst mittles der Funktion getimagesize() ob das Bild unter dem festgelegtem Limit liegt. Die Funktion getimagesize() legt hier ein Array an,
in welchen als erster Index die Breite und als zweiter Index die Höhe enthalten ist.

Sofern das Bild klein genug ist, kannst Du es mit move_uploaded_file ins Zielverzeichnis kopieren. Als ersten Parameter erwartet die Funktion den Dateinamen, unter dem die Datei gespeichert werden soll und als zweiten Parameter den Pfad zum Zielverzeichnis.
 
Hi schaff es nicht es richtig einzubauen...

Hier mein Code

Das Formular (da wird wohl nichts falsch sein)
<form enctype="multipart/form-data" action="upload.php" method="post">
<input name="file" type="file"><br>
<input type="submit" value="hochladen">
</form>


und hier upload.php:
PHP:
<?php 

$tempname = $_FILES['file']['tmp_name']; 

$name = $_FILES['file']['name']; 

$type = $_FILES['file']['type']; 

$size = $_FILES['file']['size']; 

if($type != "image/gif" && $type != "image/pjpeg") 
{ 
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
}

if($size > "15000")
{ 
$err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!"; 
}

if(empty($err))
{ 
copy("$tempname", "$name"); 
echo "Die Datei $name wurde erfolgreich hochgeladen!"; 
} 
else
{ 
foreach($err as $error) 
echo "$error<br>"; 
} 

?>

Kann mir dass bitte jemand einbauen?
SG
 
Hi,

@moderator: sorry das ich jetzt 3 beiträge hinereinander gemacht habe, hoffe dass es nicht gegen eine regel verstoßt

@alle:
kann das wirklich keiner einbauen, ich WEIS es dass es irgentjemand da draußen in den weiten des internets dies weis...

also bitte um hilfe, wäre sehr wichtig für mich...!

SG
 
Ich verstehe nicht, warum Du Dich damit so schwer tust. Auf denen von mir geposteten Seiten zur Ermittlung der Bildgröße, findest Du auch Beispiele, aus denen man folgern kann, wie man aus einer vorhandenen Datei eine Bild-Resource erzeugt und über diese die Ausmaße des Bildes heraus bekommt. Ein einfacher Vergleich mit der Zahl 90 sollte Dir dann Aufschluss darüber geben,. ob das Bild hochgeladen werden darf oder nicht.

Übrigens: Zahlen sind keine Strings! D.h. wenn Du Zahlen vergleichst, dann umschließe diese nicht mit doppelten Anführungszeichen.

snuu
 
Zurück