php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.10.2008, 13:02  
Lapje
Gast
 
Beiträge: n/a
Standard Problem Upload mehrere Dateien und schreiben in DB

Hallo allerseits...

Ich habe hier ein Script, mit dem ich mehrere Bilder auf meinen Server laden kann und die Namen der Bilder in die DB geschrieben werden. Das klappt wunderbar...

Jetzt stehe ich aber vor einem kleinem Problem:

in der DB gehört zu jedem Bild ein Vorschaubild...das bedeutet in dem Fall, das ich ich ein Bild und das Vorschaubild hochladen muss, und beides in der gleichen Zeile in die DB schreiben muss...

Und da oft einige Bilder hochgeladen werden würde ich gerne immer mehrere auf einmal hochladen können...

Hier das Originalscript für mehrere Bilder ohne Vorschaubilder:

PHP-Code:

$folder 
'../images/fotos/thsteh/';

foreach (
$_FILES["upfile"]["error"] as $key => $error
{
    if (
$_FILES['upfile']['size'][$key] > 0
    {
        
$name $_FILES["upfile"]["name"][$key];
        
$groesse $_FILES["upfile"]["size"][$key];
        
        if (
file_exists($folder '' $name ''))
        {
            echo 
'Datei ' $name ' ist bereits vorhanden!<br /><br />';
        } 
        
        else
        {
            
move_uploaded_file
            
(
             
$_FILES["upfile"]["tmp_name"][$key],
             
$folder.$_FILES["upfile"]["name"][$key]
            ) or die(
"Beim Upload ist ein Problem aufgetreten");
            
            echo 
'Datei ' $name ' mit einer Größe von ' $groesse 'Kb wurde erfolgreich geladen<br /><br />';
            
            
mysql_query("SET NAMES 'utf8'");             
            
            
$mysql_eingabe "INSERT fotos_serie ";
            
$mysql_eingabe .= "(fotos_serie_bild) ";
            
$mysql_eingabe .= "VALUES ('" $name "')";
            
            
mysql_query($mysql_eingabe);
            
            
$num mysql_affected_rows();
            
            
// Ausgabe ob Datensatz hinzugefügt wurde     
            
if ($num>0)
            {
                echo 
'<br />';
                echo 
"Datensatz hinzugefügt!<br><br>";
            }
            else
            {
                echo 
"Ein Fehler ist aufgetreten!<br><br>";
            }
        }
    }


und hier das "gebastelte" was nicht funktioniert...ist sicherlich nur Murks bei rumgekommen:

PHP-Code:

$folder 
'../images/fotos/thsteh/';

foreach (
$_FILES["upfile"]["error"] as $key => $error
{
    if (
$_FILES['upfile']['size'][$key] > 0
    {
        
$name $_FILES["upfile"]["name"][$key];
        
$groesse $_FILES["upfile"]["size"][$key];
        
        
$name_klein $_FILES["upfile_klein"]["name"][$key];
        
$groesse_klein $_FILES["upfile_klein"]["size"][$key];
        
        if (
file_exists($folder '' $name ''))
        {
            echo 
'Datei ' $name ' ist bereits vorhanden!<br /><br />';
        } 
        
        else
        {
            
move_uploaded_file
            
(
             
$_FILES["upfile"]["tmp_name"][$key],
             
$folder.$_FILES["upfile"]["name"][$key],
              
$_FILES["upfile_klein"]["tmp_name"][$key],
             
$folder.$_FILES["upfile_klein"]["name_klein"][$key]
            ) or die(
"Beim Upload ist ein Problem aufgetreten");
            
            echo 
'Datei ' $name ' mit einer Größe von ' $groesse 'Kb wurde erfolgreich geladen<br /><br />';
            echo 
'Datei ' $name_klein ' mit einer Größe von ' $groesse_klein 'Kb wurde erfolgreich geladen<br /><br />';
            
            
mysql_query("SET NAMES 'utf8'");             
            
            
$mysql_eingabe "INSERT fotos_serie ";
            
$mysql_eingabe .= "(fotos_serie_bild, fotos_serie_vorschau_bild) ";
            
$mysql_eingabe .= "VALUES ('" $name "', '" $name_klein "')";
            
            
mysql_query($mysql_eingabe);
            
            
$num mysql_affected_rows();
            
            
// Ausgabe ob Datensatz hinzugefügt wurde     
            
if ($num>0)
            {
                echo 
'<br />';
                echo 
"Datensatz hinzugefügt!<br><br>";
            }
            else
            {
                echo 
"Ein Fehler ist aufgetreten!<br><br>";
            
            }
        }
    }


hierbei bekomme ich die Fehlermeldung

Warning: Wrong parameter count for move_uploaded_file() in /www/htdocs/w009cbac/sylwia/page/admin/fotos-upload-b.php131
Beim Upload ist ein Problem aufgetreten on line

Ich habe auch mal das obere Script noch mal angehangen und [upfile] in [upfile_klein] geändert, das hat prinzipiell geklappt, nur werden dann die Vorschaubilder in neue Zeile in die DB geschrieben (ist ja logisch)...

Wäre es vielleicht möglich die ID, in die die Bilder in die DB geschrieben wurde per mysql_insert_id () in ein Array zu schreiben und später beim schreiben der Vorschaubilder in die Datei wieder auszulesen und zu benutzen? Das ist das einzige was mir jetzt noch einfällt, aber sicherlich nicht das eleganteste...

Kann jemand helfen?

Besten dank für die Hilfe...

Lapje

Geändert von Lapje (22.10.2008 um 13:07 Uhr).
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.10.2008, 13:12  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Nun wenn mehrere (oder 2) Bilder zu einem Datensatz gehören, dann musst du dir eine entsprechende Logik aufbauen indem du die Namen der File-Felder als Referenz benutzt.

Beispiel:
name="datei[xyz][0]" für das kleine Bild und
name="datei[xyz][1]" für das große
cycap 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
Problem mit File Upload b++ PHP Tipps 2006 2 26.04.2006 20:35
upload problem LP PHP Tipps 2006 10 08.02.2006 23:24
File Upload für dateien größer als 1GB b++ PHP Tipps 2006 14 08.02.2006 21:59
Problem beim Kopieren von Dateien Smiley PHP Tipps 2006 5 04.02.2006 00:11
dateien ausgeben kein Problem - ABER! dsmcg PHP Tipps 2005-2 9 22.10.2005 19:59
[Erledigt] Problem mit User/Group: nobody(99)/99 Server, Hosting und Workstations 3 09.07.2005 15:31
Problem beim Dateien zählen thefaxx PHP Tipps 2005-2 7 01.07.2005 20:47
Problem bei Dateiupload bei großen Dateien Calli PHP Tipps 2005 4 13.01.2005 16:13
[Erledigt] [PHP] Problem mit Script fuer Browserbasierten Upload PHP-Fortgeschrittene 5 26.12.2004 13:49
Upload von Dateien PHP Tipps 2004 10 16.09.2004 10:52
Problem mit Datei Upload Server, Hosting und Workstations 6 06.09.2004 04:58
[Erledigt] Php skript upload problem! PHP Tipps 2004 2 30.06.2004 00:06
[Erledigt] altes neues problem von datei upload!!! PHP Tipps 2004 3 28.06.2004 19:06
[Erledigt] File Upload: PRoblem mit Upload directory PHP Tipps 2004 3 26.06.2004 13:20
[Erledigt] Upload Problem PHP Tipps 2004 2 18.06.2004 13:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php upload mehrerer dateien, php upload mehrere dateien, upload mehrere dateien, upload mehrerer dateien php, upload mehrerer dateien, mehrere dateien hochladen php html, php mehrere dateien schreiben, mehrere dateien hochladen php, http://www.php.de/php-tipps-2008/48353-problem-upload-mehrere-dateien-und-schreiben-db.html, upload url mehrere fotos, php upload files from folder, php uload mehrere bilder, php file upload error, bilder upload php mehrere dateien, erste datei anders in db schreiben php, in mehrere datei schreiben php, foreach für $_files verwenden, namen auf bildern schreiben, php file upload mehrere dateien, mehrere dateien $_files

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 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