mehrere mime types ???
Kai
- php
0 Cheatah0 MudGuard0 wahsaga0 kai0 Thomas Luethi0 Kai
0 Thomas Luethi
0 Thomas Luethi
Hallo Zusammen,
hab einen upload script anhand eines tutorials geschrieben.
<?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[] = "die nit.";}
If(empty($err)) {
copy("$tempname", "test/$name");
echo "Die Datei $name wurde erfolgreich hochgeladen!";
}
else {
foreach($err as $error)
echo "$error<br>";
}
?>
die if Abfrage für die Mimetypes funktioniert auch soweit
möchte aber gerne ermöglichen dass auch tiffs upgeloadet
werden können.
eht bei mir aber irgendwie nicht; schreibe es wie folgt:
if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/tiff") {
$err[] = "die nit.";
}
mit dieser Schreibweise übernimmt er es aber nicht bin PHP anfänger bräuchte Hilfe
sag mal danke Kai
Hi,
if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/tiff") {
mit dieser Schreibweise übernimmt er es aber nicht
mit welcher Schreibweise übermittelt es denn der Client?
Cheatah
Hi,
$type = $_FILES['file']['type'];
Gib doch mal $type aus - was steht tatsächlich drin?
if($type != "image/gif" && $type != "image/pjpeg") {
Bist Du sicher, daß das image/pjpeg heißen soll? Ich kenn nur image/jpeg. Gleicher Tippfehler (?) weiter unten...
cu,
Andreas
hi,
if($type != "image/gif" && $type != "image/pjpeg") {
Bist Du sicher, daß das image/pjpeg heißen soll? Ich kenn nur image/jpeg.
ich glaube es war der IE, der hier bei einem JPEG image/pjpeg als mime type liefert.
wenn nur bilder hochgeladen werden sollen, würde ich eher vorschlagen, per getimagesize() den typ zu bestimmen (sofern GDlib vorhanden).
http://www.php.net/manual/de/function.getimagesize.php
gruss,
wahsaga
hi
ich glaube es war der IE, der hier bei einem JPEG image/pjpeg als mime type liefert.
da stellt sich ja gleich die nächste Frage im IE gehts nu mit image/pjpeg und im mozilla nur ohne das p also so: image/jpeg.
es sollte doch aber schon irgenwie in beiden browsern funktionieren.
wenn nur bilder hochgeladen werden sollen, würde ich eher vorschlagen, per getimagesize() den typ zu bestimmen (sofern GDlib vorhanden).
sollen nicht nur bilder sonder auch zb. application/zip zugelassen sein.
kann ich nicht in einer reihe schreiben image/jpeg image/gif image/tiff und application/zip.
Kai
Hallo,
sollen nicht nur bilder sonder auch zb. application/zip zugelassen sein.
kann ich nicht in einer reihe schreiben image/jpeg image/gif image/tiff und application/zip.
Bitte sag sowas doch gleich.
Eine endlose Reihe von Bedingungen, die mit && (AND) verknuepft sind,
finde ich nicht besonders praktisch.
Du koenntest z.B. eine Liste (Variablentyp: Array) aller erlaubten MIME-Typen anlegen
und dann schauen, ob der angegebene bzw. festgestellte MIME-Typ darin
vorkommt, z.B. mit in_array() oder einer anderen Array-Funktion.
http://www.php.net/manual/de/function.in-array.php
// Voraussetzung: $dateityp wurde ermittelt bzw. "geglaubt"
$mimetypen = array ("iamge/gif", "image/jpeg", "image/pjpeg", "image/tiff", "application/zip");
if (in_array ($dateityp, $mimetypen))
{
print "OK";
}
else
{
print "Nicht OK";
}
Gruesse,
Thomas
Bitte sag sowas doch gleich.
Ja mach ich das nächste mal ;-)
Du koenntest z.B. eine Liste (Variablentyp: Array) aller erlaubten MIME-Typen anlegen
es funktioniert jetzt *freu*
vielen dank für den Tip die Variante ist echt praktisch
schöne grüße Kai
Hallo,
es funktioniert jetzt *freu*
Schoen. Meinen Tippfehler (iamge/gif) hast Du hoffentlich gesehen. ;-)
vielen dank für den Tip die Variante ist echt praktisch
Gerngeschehen.
Liebe Gruesse,
Thomas
Hallo wahsaga,
per getimagesize() den typ zu bestimmen (sofern GDlib vorhanden).
http://www.php.net/manual/en/function.getimagesize.php
"This function does not require the GD image library."
mfg, Thomas
Hallo,
$type = $_FILES['file']['type'];
Du solltest Dich nicht darauf verlassen, was die
Browser von der Datei sagen.
Pruefe sie stattdessen mit getimagesize().
Nur so kannst Du (einigermassen) sicher sein,
dass es sich um ein Bild im gewuenschten Format handelt.
http://www.php.net/manual/en/function.getimagesize.php
if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/tiff")
Obwohl image/pjpeg noch durch die Welt geistert,
ist der korrekte MIME-Type: image/jpeg
http://selfhtml.teamone.de/diverses/mimetypen.htm
http://www.faqs.org/rfcs/rfc2046.html
Wie gesagt, empfehle ich Dir, den Typ mit getimagesize()
zu ermitteln.
Der Typ ist dann 1 (GIF), 2 (JPEG), 7 oder 8 (TIFF).
btw: Warum ausgerechnet TIFF?
Warum PNG _nicht_?
Gruesse,
Thomas
hi
Obwohl image/pjpeg noch durch die Welt geistert,
ist der korrekte MIME-Type: image/jpeg
image/jpeg dieser mime type funktioniert bei mir nur im mozilla aber im IE nicht !!! versteh ich nicht ;-(
Wie gesagt, empfehle ich Dir, den Typ mit getimagesize()zu »»ermitteln.
möchte aber auch noch application/zip zulassen !!
btw: Warum ausgerechnet TIFF?
weil meine kunden ihre printfertigen daten ablegen wollen die meisst im tiff format reinkommen !!
manche können nämlich ihre daten nicht zippen ;-(
gibt es keine lösung in einer if abfrage die verschiedenen mime tipes zulässt ??
help help help
Kai
Gruesse,
Thomas
Hello,
möchte aber auch noch application/zip zulassen !!
Wenn Du auf Linux arbeitest, dann schau Dir mal das Programm "file" von Linux an, die Hilfe und die man-Seiten. Das kann man dann mit einigen geschickten Paramtern mit system() aufrufen und den Filetyp (MIME-Type) prüfen lassen. Da kannst Du dann zu 99,99% sicher sein, dass es auch stimmt.
Liebe Grüße aus http://www.braunschweig.de
Tom