php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.06.2005, 03:49  
Gast
 
Beiträge: n/a
Standard Maximale grösse beim Upload der Bilder...

Hola zusammen

Ich muss zugeben, dachte PHP wäre leicht.. Ich komme aber schon jetzt an meine Grenzen. Ich hoffe das ich in einem Jahr ein teil von dem was Ihr könnt...

Bin ziemlich neu in diesem Bereich und bräuchte mal kurz Eure Hilfe.
Es geht um folgendes. Ich habe einen Formular der die möglichkeit einem User gibt bis zu fünf Bilder hochzuladen:

Code:
<td colspan="6" rowspan="6"> <font size="2" face="Arial, Helvetica, sans-serif"> 
                        Bild 1<font color="#FFFFFF"> cc</font> 
                        <input type=file name="images[]" style="Width: 300px">
                        

                        Zusatzbild 2 
                        <input type=file name="images[]"  style="Width: 300px">
                        

                        Zusatzbild 3 
                        <input type=file name="images[]" style="Width: 300px">
                        

                        Zusatzbild 4 
                        <input type=file name="images[]" style="Width: 300px">
                        

                        Zusatzbild 5 
                        <input type=file name="images[]" style="Width: 300px">
                        

                        

                        </font></td>
Nun ist das blöde das die User nicht nur Bilder sondern alle dateitypen hochladen können!

Noch schlimmer ist das es keine Limite gibt. Nun möchte ich das ändern, keine ahnung aber wie.

Die File die das ganze verarbeiten soll, sieht so aus:


Code:
<?
require_once("conn.php");

if(isset($_POST[s1]))
{
    if(!empty($_FILES[images][name][0]))
    {
        while(list($key,$value) = each($_FILES[images][name]))
        {
            if(!empty($value))
            {
                $NewImageName = $t."_offer_".$value;
                copy($_FILES[images][tmp_name][$key], "re_images/".$NewImageName);

                $MyImages[] = $NewImageName;
            }
        }

        if(!empty($MyImages))
        {
            $ImageStr = implode("|", $MyImages);
        }

    }

    $catInfo = explode("|", $_POST[SelectCategory]);
    $CategoryID = $catInfo[0];
    $SubcategoryID = $catInfo[1];

    $q1 = "insert into re2_listings set 
                    UserID = '$_SESSION[UserID]',
                    CategoryID = '$CategoryID',
                    SubcategoryID = '$SubcategoryID',
                    address = '$_POST[address]',
                    city = '$_POST[city]',
                    state = '$_POST[state]',
                    PropertyType = '$_POST[PropertyType]',
                    image = '$ImageStr',
                    DateAdded = '$t' ";

    mysql_query($q1);

}

header("location:manage.php");
exit();

?>
Kann mir bitte jemand helfen und sagen was ich machen muss bzw. diese änderungen vornehmen..?

Besten Dank im Voraus!!!

Saludos
Raul
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.06.2005, 09:12  
Erfahrener Benutzer
 
Registriert seit: 09.05.2005
Beiträge: 193
akratellio
Standard

hallo raul_rodri,

wenn du ein file upgeloaded hast kannst du mit
$_FILES[irgendeinname][type] den Typ des uploads herausfinden.

willst du z.B. nur gifbilder haben kannst du per if- Abfrage
auf == "image/gif" testen.

hast du nun festgestellt, dass eine bilddatei vorliegt, so kannst
du mit $_FILES[irgendeinname][size] die größe abfragen.
(vorsicht die größenangabe sind bytes!)

mfg

akratellio
akratellio ist offline  
Alt 12.06.2005, 13:38  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

bitte array-indizes in ' setzen wie es sich gehört.

$array['index']

mfg
robo47
robo47 ist offline  
Alt 12.06.2005, 14:14  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Man kann auch mit html die größe festlegen:

http://de.selfhtml.org/html/formular...htm#definieren
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 12.06.2005, 15:31  
Gast
 
Beiträge: n/a
Standard

Hola zusammen,

Ich habe jetet wie robo47 mal den Code(die Array) richtig gesetzt. Hoffe ich zumindenstens.

akratellio:
Ich weiss das ich diese Überprüfung hier irgendwo setzen muss:

Code:
copy($_FILES["images"]["tmp_name"][$key], "re_images/".$NewImageName);
Was aber genau machen, keine ahnung. Ich habe etwas ausprobiert. Die File sieht jetzt so aus:
Zitat:
<?
$maxsize = 15; # in kB
$allowed = array("image/jpeg", "image/jpg", "image/pjpeg", "image/gif", "image/png");
$target = "./re_images/";
$overwrite = true;
$fieldname = "images";


require_once("conn.php");

if(isset($_POST[s1]))
{
if(!empty($_FILES["images"]["name"][0]))
{
while(list($key,$value) = each($_FILES["images"]["name"]))
{
if(!empty($value))
{
$NewImageName = $t."_offer_".$value;

copy($_FILES["images"]["tmp_name"][$key], "re_images/".$NewImageName);

$MyImages[] = $NewImageName;
}
}

if(!empty($MyImages))
{
$ImageStr = implode("|", $MyImages);
}

}

$catInfo = explode("|", $_POST[SelectCategory]);
$CategoryID = $catInfo[0];
$SubcategoryID = $catInfo[1];

$q1 = "insert into re2_listings set
UserID = '$_SESSION[UserID]',
CategoryID = '$CategoryID',
SubcategoryID = '$SubcategoryID',
address = '$_POST["address"]',
city = '$_POST["city"]',
state = '$_POST[s"tate"]',
PropertyType = '$_POST["PropertyType"]',
image = '$ImageStr',
DateAdded = '$t' ";

mysql_query($q1);

}

header("location:manage.php");
exit();

?>
[/code]

Was muss ich da genau machen?

Freeaak: Ich habe deine Variante auch ausprobiert. Leider klappt es nicht. Ausserdem ist es gar nicht sicher das diese Überprüfung stattfinden, würde man so machen.

Saludos
Raul

[/code]
 
Alt 12.06.2005, 16:50  
Gast
 
Beiträge: n/a
Standard

Hola zusammen...

Nun habe ich diesen Code hier:

PHP-Code:
<?php
<?php
require_once("conn.php");

$maxsize 15;    # max. dateingröße in kB
$allowed = array("image/jpeg""image/jpg""image/pjpeg""image/gif""image/png"); # erlaubte dateitypen
$target "./re_images/";    # zielverzeichnis
$overwrite true;    # existierende dateien überschreiben

if(isset($_POST["s1"])) {  # fehler korrigiert
    
if(!empty($_FILES["images"]["name"][0])) {
        while(list(
$key,$value) = each($_FILES["images"]["name"])) {
            
$NewImageName $t."_offer_".$value# name für die zu speichernde datei festlegen
            
            
if($_FILES["images"]["error"][$key] > 0) {    # ist beim upload ein fehler aufgetreten?
                # wenn fehlercode = 4, dann wurde keine datei hochgeladen => keine fehlermeldung ausgeben
                
if($_FILES["images"]["error"][$key] != 4) echo "Beim Upload ist ein Fehler aufgetreten!
"
;
                continue;
            }
            
            if(
$_FILES["images"]["size"][$key] > ($maxsize 1024)) {    # ist die datei zu groß?
                
echo "Die Datei $value ist zu groß!
"
;
                continue;
            }
            
            if(!
in_array(strtolower($_FILES["images"]["type"][$key], $allowed)) {    # richtiger dateityp?
                
echo "Der Dateityp ist nicht erlaubt!
"
;
                continue;
            }
                
            if(
file_exists($target $NewImageName) && !$overwrite) {    # existiert die datei und darf nicht überschrieben werden?
                
echo "Die Datei ".$target $NewImageName." existiert bereits und darf nicht überschrieben werden!
"
;
                continue;
            }
            
            if(!
move_uploaded_file($_FILES["images"]["tmp_name"][$key], $target $NewImageName)) {    # war das speichern erfolgreich?
                
echo "Die Datei konnte nicht gespeichert werden!
"
;
            }
            else {
                
$MyImages[] = $NewImageName;
            }
        }

        if(
is_array($MyImages) && count($MyImages) > 0) {
            
$ImageStr implode("|"$MyImages);
        }
    }

    
$catInfo explode("|"$_POST[SelectCategory]);
    
$CategoryID $catInfo[0];
    
$SubcategoryID $catInfo[1];

    
$q1 "insert into re2_listings set 
                    UserID = '$_SESSION[UserID]',
                    CategoryID = '$CategoryID',
                    SubcategoryID = '$SubcategoryID',
                    address = '$_POST["
address"]',
                    city = '$_POST["
city"]',
                    state = '$_POST[s"
tate"]',
                    PropertyType = '$_POST["
PropertyType"]',
                    image = '$ImageStr',
                    DateAdded = '$t' "
;

    
mysql_query($q1);

}

header("location:manage.php");
exit();
?>


?>
Leider bekomme ich einen Parse error:

PHP-Code:
<?phpParse errorparse errorunexpected '{' in /home/httpd/vhosts/meinedomain.de/httpdocs/AddOffer.php on line 25
?>
Das ist diese zeile hier:
PHP-Code:
<?phpif($_FILES["images"]["size"][$key] > ($maxsize 1024)) {    # ist die datei zu groß?
?>
Weiss jemand warum...könnt Ihr euch mal das anschauen?

Besten Dank im voraus.

Saludos
Raul
 
Alt 12.06.2005, 17:04  
Benutzer
 
Registriert seit: 03.04.2008
Beiträge: 45
QDSL befindet sich auf einem aufstrebenden Ast
Standard

Schreib mal
PHP-Code:
<?phpif(....?>
auseinander, also so:
PHP-Code:
<?php if().....?>
QDSL ist offline  
Alt 12.06.2005, 17:45  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Das da ist auch etwas seltsam:
PHP-Code:
<?php
   
if(!in_array(strtolower($_FILES["images"]["type"][$key], $allowed)) {    # richtiger dateityp? 
?>
Du solltest die Klammer von strtolower() auch irgendwo mal schließen. Am besten vor dem Komma.

Beim überschlägigen Zählen ist das übrigens Zeile 25 und nicht die, die Du genannt hattest.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder Upload PHP Tipps 2006 6 24.03.2006 15:19
Probelem bei meinem Upload Script für Bilder wiegia086 PHP Tipps 2006 3 17.03.2006 09:14
file upload & bilder resize PHP Tipps 2006 3 15.02.2006 18:56
Bilder upload plus eintrag in DB tommi89 Datenbanken 1 28.01.2006 08:59
Kann Bilder nicht Uploaden / Cannot upload my Images :( PHP Tipps 2005-2 14 25.09.2005 17:47
[Erledigt] Bildergalerie Gallery 1.5-pl1 + Bilder upload Probleme !!!! PHP Tipps 2005-2 6 01.09.2005 23:22
[Erledigt] Mysql - PHP - Bilder upload Datenbanken 5 24.08.2005 00:04
Bilder Upload in MySQL...geht das? Aris Sung PHP-Fortgeschrittene 7 23.08.2005 23:18
[Erledigt] Bilder Upload für user in eigenen Ordner PHP-Fortgeschrittene 7 08.07.2005 10:38
Bilder Upload funktioniert nicht auf dem Webserver... 18inch PHP Tipps 2005-2 32 28.06.2005 19:14
Bilder Upload Problem unter Firefox... becks123 PHP Tipps 2005 19 16.04.2005 12:12
Bilder upload (Massen) PHP Tipps 2005 11 06.01.2005 14:14
Bilder - Upload - Email - MySQL PHP Tipps 2004 10 20.10.2004 15:48
[Erledigt] upload bilder PHP Tipps 2004 21 16.09.2004 13:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bilder uploaden maximale größe, $_files maximale größe, php upload maximale dateigröße definieren, php maximale größe bilder, input type file maximale größe, php resize maximalgröße, maximale größe $_post, maximale größe eines $_files, nein ich bin keine signatur ich putze hier nur gif, $_files[$fieldname][\'error\'], $_files max grösse, zend framework upload file userid

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.