php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.09.2005, 14:42  
Gast
 
Beiträge: n/a
Standard File up& download in MySQL // Problem hier: Filesize

hi,

also ich hab hier vor Dateien direkt in der DB zu saven.
Über das Pro& contra habe ich mich informiert, also bitte diesbezüglich kein geflamme

infos:
http://www.itworld.com/nl/db_mgr/09022002/pf_index.html
http://lists.mysql.com/plusplus/4798
http://www.wellho.net/forum/The-MySQ...hemselves.html
lot's more


ok. Der Datei Up & download funktioniert soweit auch ohne Probleme, naja
FAST.

ich habe jetzt über mehrere Wege probiert das Filesize Limit einzubinden...siehe folgenden Code.
Das Tabellenfeld ist LONGBLOB, also ausreichend dimensioniert.

Files im Bereich 2 MB gehen ohne Probleme, bei meiner 13 MB testdatei kommt aber weder das Postiive noch das negative Feedback ..siehe unteres IF /ELSE


bin etwas ratlos.
hoffe ihr habt ne idee.



danke gruss
fidel_

und nun zum code:
--

PHP-Code:
<?php

echo "<form method='post' enctype='multipart/form-data'>";
echo 
"<table width='700' border='0' cellpadding='1' cellspacing='1' class='box'>";
//
// Topic            ********************************** 
echo "<tr>";
echo 
"<td></td>";
echo 
"<td colspan='2'><h2>Up & Download:</h2></td>";
echo 
"</tr>";
// HELP
echo "<tr>";
echo 
"<td></td>";
echo 
"<td colspan='2' align='right'>[url='./help/index.html'][img]images/icon_help.jpg[/img][/url]</td>";
echo 
"</tr>";
//
//
//
// Content START ********************************
//
echo "<tr>";
echo 
"<td colspan='3'></td>";
echo 
"</tr>";
//  zu diesem Artikel
echo "<tr>";
    echo 
"<td></td>";
    echo 
"<td colspan='2'bgcolor='#dbded8'>[b]Dokumentation zu Artikel Nr: '".$_GET['identifier']."'[/b]</td>";
echo 
"</tr>";
//  Spacer
echo "<tr>";
echo 
"<td colspan='3'></td>";
echo 
"</tr>";
// Spacer
echo "<tr>";
    echo 
"<td colspan='3'></td>";
echo 
"</tr>";
// Doku Typ
echo "<tr>";
echo 
"<td width='60'></td>";
echo 
"<td width='200'>Doku-Typ:</td>";
echo 
"<td>";
echo 
"<select class='form' id='doku_typ' name='doku_typ'>";
echo 
"<option value=''>Bitte waehlen</option>";    
$sql "    SELECT        doku_typ_id,doku_typ_name
                FROM            KIS_doku_typ
                ORDER BY        doku_typ_name ASC;"
;               
$result mysql_query($sql) OR die(mysql_error());
while(
$row mysql_fetch_assoc($result)) 
{
echo 
"<option value=\"".$row['doku_typ_id']."\">".$row['doku_typ_name']."</option>\n";
}
echo 
"</select>";
echo 
"</td>";
echo 
"</tr>";
// Notiz 
echo "<tr>";
echo 
"<td></td>";
echo 
"<td width='200'>Doku-Notiz:</td>";
echo 
"<td><input size='30' name='doku_notiz' type='text'></td>";
echo 
"</tr>";
//
// 
echo "<tr>";
echo 
"<td></td>";
echo 
"<td>Doku-Quelle:</td>";
//
// Test mit hidden Field
//
//
echo "<td><input name='userfile' type='file' id='userfile'></td>"// ersatz, geht aber auch nicht
// echo "<td><input type='hidden' name='MAX_FILE_SIZE' value='20000000'><input name='userfile' type='file' id='userfile'></td>";
echo "</tr>";
// Blender
echo "<tr>";
echo 
"<td colspan='3'></td>";
echo 
"</tr>";
// bestehende Dateien Überschrift
echo "<tr>";
echo 
"<td></td>";
echo 
"<td colspan='2' bgcolor='#dbded8'>[b]Diese Dateien existieren bereits:[/b]</td>";
echo 
"</tr>";
// bestehende Dateien anzeigen
echo "<tr>";
echo 
"<td></td>";
echo 
"<td colspan='2'>";
// wir wollen existente dokus sehen, evlt auch zum DL    
$query  =     "SELECT         doku_id, name 
            FROM             KIS_doku
            WHERE            KIS_artikel_artikel_inv_nummer = '"
.$_GET['identifier']."'";
                    
$result mysql_query($query) or die('Error, query failed');
            

if(
mysql_num_rows($result) == 0)
{
echo 
"Es existieren aktuell noch keine Dokumenations-Unterlagen zu diesem Artikel.
"
;

else
{
    while(list(
$id$name) = mysql_fetch_array($result))
    {
    echo 
"<a href='dl.php?id=$id' target='_new'>";          // Link  
          
echo $name;                                                        
           echo 
"</a>
"
;                                                    
       }    
}
echo 
"</td>";
echo 
"</tr>";
// spacer
echo "<tr>";
echo 
"<td colspan='3'></td>";
echo 
"</tr>";
// Upload Button
echo "<tr>";
    echo 
"<td></td>";
    echo 
"<td colspan='2'><input name='upload' type='submit' class='box' id='upload' value='upload'></td>";
echo 
"</tr>";
// spacer
echo "<tr>";
    echo 
"<td colspan='3'></td>";
echo 
"</tr>";
// spacer
echo "<tr>";
echo 
"<td colspan='3'></td>";
echo 
"</tr>";
// hinweis
echo "<tr>";
echo 
"<td></td>";
echo 
"<td colspan='2'>[b]Hinweis:[/b]</td>";
echo 
"</tr>";
// hinweis 1
echo "<tr>";
echo 
"<td></td>";
echo 
"<td colspan='2'>- Die Dateigroesse ist auf max. 20 mb limitiert.</td>";
echo 
"</tr>";
echo 
"</table>";
echo 
"</form>";
    
    
    
    
    
    if(isset(
$_POST['upload']) && $_FILES['userfile']['size'] > 0)
    {
        
        
// Some Debug Informations
        //
        //print_r($_FILES);
        //print_r($_POST);
        
        
$doku_notiz $_POST['doku_notiz'];
        
$doku_typ     $_POST['doku_typ'];
        
        
        
$fileName $_FILES['userfile']['name'];
        
$tmpName  $_FILES['userfile']['tmp_name'];
        
$fileSize $_FILES['userfile']['size'];
        
$fileType $_FILES['userfile']['type'];

        
$fp      fopen($tmpName'r');
        
$content fread($fpfilesize($tmpName));
        
$content addslashes($content);
        
fclose($fp);

        if(!
get_magic_quotes_gpc())
        {
           
$fileName addslashes($fileName);
        }
        
        
        
        
        
// Check auf filesize
        // wenn kleiner 1mb, dann mach upload
        
if($fileSize 20000000)
        {
        
//mache Upload
$query =     "INSERT INTO         KIS_doku
                                                    (KIS_doku_typ_doku_typ_id,
                                                    KIS_artikel_artikel_inv_nummer,
                                                    doku_notiz,
                                                    name, 
                                                    size, 
                                                    type, 
                                                    content) 
                            VALUES                 ('$doku_typ',
                                                    '"
.$_GET['identifier']."',
                                                    '$doku_notiz',
                                                    '$fileName', 
                                                    '$fileSize', 
                                                    '$fileType', 
                                                    '$content')"
;

            
mysql_query($query) or die('Error, query failed');

            echo 
"<tr>";
                echo 
"<td></td>";
                echo 
"<td colspan='2'>Der Upload der Datei: $fileName ist erfolgreich abgeschlossen.</td>";
            echo 
"</tr>";
            
            
        }
        else
        {
            echo 
"Die Datei ist leider zu gross, beachten Sie die Hinweise am Seitenende!";
        }
        
        
        
        
        
        
    }
?>
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.09.2005, 15:30  
Gast
 
Beiträge: n/a
Standard

EDIT:
habe mal umgebaut.

Interessant hierbei ist folgendes:
--

Will ich ein 1,9 mb File uploaden kommt wie erwartet eine Fehlermeldung bzgl der Grösse
Will ich ein 13 mb File uploaden kommt keinerlei Feedback, sprich keiner der 3 Fälle wird angesprochen.......die Frage ist doch aber, wo läuft die anwendung dann hin ?


code hier:
PHP-Code:
<?php

//blablub
//und noch mehr, formular siehe oben, POSt Nr 1

if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
    {
        
        
// Some Debug Informations
        //
        //print_r($_FILES);
        //print_r($_POST);
        
        
$doku_notiz $_POST['doku_notiz'];
        
$doku_typ     $_POST['doku_typ'];
        
        
        
$fileName $_FILES['userfile']['name'];
        
$tmpName  $_FILES['userfile']['tmp_name'];
        
$fileSize $_FILES['userfile']['size'];
        
$fileType $_FILES['userfile']['type'];
        
// File endung
        
$fileExt strtolower(substr($fileName,strrpos($fileName,".")));

        
$fp      fopen($tmpName'r');
        
$content fread($fpfilesize($tmpName));
        
$content addslashes($content);
        
fclose($fp);

        
//Leerzeichen Check & Rework
        
if(!get_magic_quotes_gpc())
        {
           
$fileName addslashes($fileName);
        }
        
        
        
        
        
        
// ----------------------------------------------------
        // --------------------
        // NEw Check Part
        //
        // 1. Filesize
        // atm 1mb
        
$MAX_SIZE 1000000;
        
//
        // 2. file Mime Types
        
$FILE_MIMES     = array    (    'image/jpeg',
                                            
'image/jpg',
                                            
'image/gif',
                                            
'image/png',
                                            
'application/msword',
                                            
'application/pdf'
                                        
);
        
// 3. file ext. names  
        
$FILE_EXTS      = array    (    '.zip',
                                            
'.jpg',    
                                            
'.png',
                                            
'.gif'
                                        
); 
                                        

        
//ok lets check those things :)
        
if ($_FILES['userfile']['size'] > $MAX_SIZE)
        {
echo 
"Entschuldigen Sie, aber die Datei überschreitet die max. Dateigroesse.
Bitte beachten Sie die Hinweise"
;
        }
        else
        {
            if (!
in_array($fileType$FILE_MIMES) && !in_array($fileExt$FILE_EXTS) )
            {
                
// falscher Dateitype, fehlermeldung quasi wie oben
                
echo "Falscher Dateityp, bitte hinweise beachten :)";
            }
            else
            {
                
// do update
                
echo "Ok, sieht alles passend aus, wir koennten nun updaten, aber das ist nur ein Dummy";
            }    
        }
        
// ----------------------------------------------------


?>




ok ein weiterer EDIT:
---------------
hab mal den RAM hochgedrückt (php.ini) und apache neu gestartet.
kann es sein das man in der grösseeinfach keine uploads über http mehr machen kann ?


sprich bin ich genötigt die files aufm server abzulegen und nur link & fileinfos in der DB zu saven ?



gib mir mal bitte jmd feedback


thx
ciao
fidel_
 
 


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
MySQL Problem fkrauthan PHP-Fortgeschrittene 5 25.01.2008 18:18
mysql problem mit LIKE und AND kazuya Datenbanken 10 29.10.2007 21:36
MySQL kodierungs problem Mutatos Datenbanken 0 12.05.2006 20:02
MySQL Problem mit INSERT-Queries Arno Nühm Datenbanken 10 07.04.2006 16:46
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
Mysql / Array Problem marcels PHP Tipps 2006 10 23.03.2006 18:30
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Problem mit MySQL und PHP - Download-Zähler PHP Tipps 2006 30 28.02.2006 20:18
[Erledigt] MYSQL Problem Datenbanken 4 09.02.2006 15:14
[Erledigt] Problem mit Sonderzeichen PHP -&gt; MySQL -&gt; HTML PHP Tipps 2007 18 07.12.2005 15:23
Problem mit IIS6 und PHPMyAdmin PHP Tipps 2005-2 4 18.07.2005 21:58
Per Php XML File auslesen, dann ab in MySQL tekknotrip PHP-Fortgeschrittene 3 13.07.2005 08:08
[Erledigt] mysql installations problem Datenbanken 4 16.02.2005 18:46
[Erledigt] Problem mit PHP und MYSQL Datenbanken 6 01.08.2004 05:59
PHP Download Problem PHP Tipps 2004 4 05.07.2004 15:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php filesize sonderzeichen, mysql download probleme, mysql max upload problem, filesize php umlaute, mysql max file size, max upload size mysql, filesize php jpg, $file_mimes = array(\'image/jpeg\',\'image/jpg\',\'image/gif\' ,\'image/png\',\'application/*\');, php max upload size mysql, filesize php sonderzeichen

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