php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.02.2010, 20:15  
Benutzer
 
Benutzerbild von Silent
 
Registriert seit: 21.12.2008
Beiträge: 87
Silent befindet sich auf einem aufstrebenden Ast
Standard Bei Upload mit Jquery Multifile-Plugin wird immer nur eine Datei hochgeladen

Hallo Leute,

Wie die Überschrift schon sagt, habe ich Probleme mit meinem Upload-Fomular.
Ich wollte mal dieses Jquery Plugin testen: jQuery Multiple File Upload Plugin v1.46 (2009-05-12)

Habs auch alles wie beschrieben eingebunden. Aus irgendeinem Grund aber wird mir immer nur eine Datei hochgeladen und in die DB reingeschrieben. Es ist immer die letzte Datei, die ich über das Input-Feld ausgewählt habe. Die vorherigen werden komplett ignoriert...
Deswegen dachte, dass es vllt ein PHP-Problem ist und habs mal hier gepostet.

Das Ganze sieht folgendermaßen aus.


Code:
<script type="text/javascript" src="css_js/jquery_v1.4.1.js"></script>
<script type="text/javascript" src="css_js/jquery.MultiFile.js"></script> 

...

<td>Bilder hochladen:</td>
<td><input name="file" class="multi" type="file" enctype="multipart/form-data" /></td>


PHP-Code:
if($_FILES['file']['size'] > 0)
{
        if(
$_FILES['file']['type'] == "image/jpeg" || $_FILES['file']['type'] == "image/jpg")
        {
                
$uploaddir "gallery_files/";
                
$uploadfile $uploaddir.basename($_FILES['file']['name']);                                    
                    
               
move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
                                                                          
        }
        else
        { 
            echo 
"<span class='info'><script type='text/javascript'>alert('Das ist keine g&uuml;ltige Bilddatei - gibt eine JPG-Datei an!');</script></span>"
        }                                                                                        

Vielleicht weiß ja einer Rat
Silent ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.02.2010, 20:18  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Vielleicht weiß ja einer Rat
Schau Dir die eingehenden Requestparameter an, das ist mein Rat. Und ohne Schleife wird ein Multiupload wohl nicht wie von Zauberhand funktionieren.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 20.02.2010, 18:26  
Benutzer
 
Benutzerbild von Silent
 
Registriert seit: 21.12.2008
Beiträge: 87
Silent befindet sich auf einem aufstrebenden Ast
Standard

Guten Abend!

Ich habe jetzt sehr lange recherchiert bis ich was halbwegs passendes gefunden habe...

So funktioniert es jetzt:

PHP-Code:
                if($_FILES['file']['size'] > 0)      
                {
                        foreach(
$_FILES["file"]["name"] as $key => $value)
                        {
                                if(
$_FILES['file']['type'][$key] == "image/jpeg" || $_FILES['file']['type'][$key] == "image/jpg")
                                {
                                        
$uploaddir "gallery_files/";
                                        
$uploadfile_tmp $_FILES['file']['tmp_name'][$key];
                                        
$uploadfile $uploaddir.basename($_FILES['file']['name'][$key]);                                    
                                        
                                        
move_uploaded_file($uploadfile_tmp$uploadfile);


                                        
$sql "INSERT INTO gallery (headline, date, place, files, insert_date)
                                                     VALUES ('"
.$input_headline."', '".$input_date."', '".$input_place."', '".$_FILES['file']['name'][$key]."', NOW())";    
                                        
                                        echo 
$sql;                            
                                        
mysql_query($sql$connection) or die(mysql_error());
                                }
                        }
                } 
Das einzige was mich grade noch stört ist, dass er mir für jede Bilddatei einen neuen Datensatz in MySQL anlegt. Wie mache ich es, dass er mir alle Bildnamen in den gleichen Datensatz in der Spalte "files" schreibt?
Silent ist offline  
Alt 20.02.2010, 18:43  
Erfahrener Benutzer
 
Registriert seit: 03.09.2009
Beiträge: 158
PHP-Kenntnisse:
Anfänger
kn0wledge befindet sich auf einem aufstrebenden Ast
Standard

Was anderes noch dazu, die sql query am besten nicht innerhalb der Schleife legen weil das sonst schnell zu einem Performance Killer werden kann.
kn0wledge ist offline  
Alt 20.02.2010, 18:48  
Benutzer
 
Benutzerbild von Silent
 
Registriert seit: 21.12.2008
Beiträge: 87
Silent befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von kn0wledge Beitrag anzeigen
Was anderes noch dazu, die sql query am besten nicht innerhalb der Schleife legen weil das sonst schnell zu einem Performance Killer werden kann.
ok, danke für den Tipp!
Silent ist offline  
Alt 20.02.2010, 18:49  
Erfahrener Benutzer
 
Registriert seit: 26.10.2009
Beiträge: 425
PHP-Kenntnisse:
Fortgeschritten
Yoshi- befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Silent Beitrag anzeigen
Das einzige was mich grade noch stört ist, dass er mir für jede Bilddatei einen neuen Datensatz in MySQL anlegt. Wie mache ich es, dass er mir alle Bildnamen in den gleichen Datensatz in der Spalte "files" schreibt?
Wie soll man dann unterscheiden wann ein Datei name aufhört und wann einer anfängt?
Yoshi- ist offline  
Alt 20.02.2010, 18:52  
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

Rein Datenbank-Design-mäßig ist das ... unschön.
Mach ne 2te tabelle mit dateien und verbinde das über id.
-> Normalisierung (Datenbank) – Wikipedia

Zitat:
if($_FILES['file']['type'][$key] == "image/jpeg" || $_FILES['file']['type'][$key] == "image/jpg")
{
Damit schließt du zuerst mal alle Internet-Explorer-User aus die ein progressives jpeg (für web optimiert) hochladen, weil der einen anderen header dafür sendet: image/pjpeg
Ausserdem da der header vom browser kommt kann dir damit jeder sonstwas unterjubeln, ne php-datei, ein gif, png ... etc, das ist ungefähr so verlässlich wie die dateiendung ... nämlich garnicht
Also anstatt dem user-input zu vertrauen und dir damit probleme und sicherheitslücken aufzubauen solltest du den typ selbst bestimmen:

PHP: mime_content_type - Manual
bzw.
PHP: finfo_open - Manual

und dann schauen ob es sich um ein bild handelt
oder auch PHP: getimagesize - Manual
und dort den bild-typ abfragen.
robo47 ist offline  
Alt 20.02.2010, 18:54  
Benutzer
 
Benutzerbild von Silent
 
Registriert seit: 21.12.2008
Beiträge: 87
Silent befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Yoshi- Beitrag anzeigen
Wie soll man dann unterscheiden wann ein Datei name aufhört und wann einer anfängt?
naja man kann doch einfach irgendein Zeichen wie z.B. | oder # mit in die DB schreiben lassen und dann später beim Auslesen mit explode() wieder aufsplitten.
Silent ist offline  
Alt 20.02.2010, 19:01  
Erfahrener Benutzer
 
Registriert seit: 26.10.2009
Beiträge: 425
PHP-Kenntnisse:
Fortgeschritten
Yoshi- befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Silent Beitrag anzeigen
naja man kann doch einfach irgendein Zeichen wie z.B. | oder # mit in die DB schreiben lassen und dann später beim Auslesen mit explode() wieder aufsplitten.
Datei namen können auch | oder # beeinhalten.
Yoshi- ist offline  
Alt 20.02.2010, 19:03  
Benutzer
 
Benutzerbild von Silent
 
Registriert seit: 21.12.2008
Beiträge: 87
Silent befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Yoshi- Beitrag anzeigen
Datei namen können auch | oder # beeinhalten.
ich verstehe schon, aber das ist im Moment noch nicht das Problem
Silent 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
Plugin Controller Cout PHP-Fortgeschrittene 5 24.06.2009 23:02
[Erledigt] Datei Upload im #iframe oder Popup poppaea PHP Tipps 2009 6 25.04.2009 17:22
[Erledigt] Nach dem Upload die Datei renamen Sermon PHP Tipps 2009 10 04.03.2009 22:27
[Erledigt] Datei Upload Prüfung auf wav / mp3 mastertnt PHP Tipps 2009 4 15.02.2009 20:05
Datei upload mit rename lithium PHP Tipps 2008 6 12.10.2008 03:06
Upload Problem einer ZIP Datei sven2oo8 PHP-Fortgeschrittene 4 23.07.2008 23:54
datei upload problem thecracked PHP Tipps 2008 5 11.07.2008 06:23
Upload - Keine Fehlermeldung, Datei wird aber nicht hochgeladen Teela PHP Tipps 2008 6 24.03.2008 21:07
Datei Upload sammt Dateisplittung PHP Tipps 2007 1 09.12.2005 11:36
Nach datei Upload den namen der datei in DB speichern?? PHP Tipps 2004 14 17.07.2004 15:38
[Erledigt] altes neues problem von datei upload!!! PHP Tipps 2004 3 28.06.2004 19:06
wenn ihr datei upload habt? wo habt ihr webspace? PHP Tipps 2004 6 18.06.2004 20:23
Datei Upload mit PHP - Probleme PHP Tipps 2004 12 04.06.2004 12:26
datei upload + Fehler PHP Tipps 2004 5 03.06.2004 13:46
datei upload + Fehler #2 PHP Tipps 2004 1 03.06.2004 12:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
jquery multifile, jquery bildupload, jquery bilder upload, jquery upload, jquery.multifile, jquery uploader, jquery multi file upload, jquery bilderupload, jquery multifile upload, jquery multi uploader, jquery multi upload, jquery file upload, jquery multifile uploader, jquery.multifile.js, upload mit jquery, http://www.php.de/php-einsteiger/64869-bei-upload-mit-jquery-multifile-plugin-wird-immer-nur-eine-datei-hochgeladen.html, jquery-multifile-plugin php, jquery upload plugin, jquery datei hochladen, jquery bilder hochladen

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