Logo - MyWebsolution.de
User gesamt  :  2453471
User online  :  4
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Anfängerfragen PHP und MYSQL » Up- und Download von Dateien..

Seite: <  1 2 3 4 5 6 7 8 9  > Posts pro Seite: 5 10 20
Autor Thread
31.01.2007 21:16 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
mit umbenennen meine ich, nen zufallsnamen erzeugen.
Ansonsten müsstest du jedesmal prüfen, ob bereits eine Datei mit dem Namen existiert.

Beispiel:

Die Datei eines Users heißt Interpret1 - Song1
eine andere Datei heißt Interpret1 - Song2

-> kein Problem

aber, die nächste Datei ist meinetwegen von nem anderen Album und heißt auch wieder
Interpret1 - Song1, dann wird die erste Datei überschrieben, weil nicht 2 Dateien mit dem gleichen Namen im gleichen Ordner existieren dürfen.


Profil ansehen Mail senden
01.02.2007 18:37 Uhr
mdean
Forenposter
 
registriert 03.01.2007
wohnt in Schweiz
Beiträge 90
aha ok danke..

Bräuchte noch Hilfe bei einzelnen Codeschnipsel:

1. Wie Prüfe ich ob überhaupt eine Datei ausgewählt wurde?

2.Wie übergebe ich am Schluss den Namen des Users, der die Datei geladen hat in die DB?
'".mysql_real_escape_string(trim(???))."' ;

3. Den Mime-Typ von Bildern ist ja z.B. image/pjpeg. Weisst du wie derjenige von pdf ist?

Hoffe ich nerve nicht zu fest mit meinen FragenxD
mdean
Profil ansehen
01.02.2007 20:25 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Zitat:
1. Wie Prüfe ich ob überhaupt eine Datei ausgewählt wurde?


Wenn keine Datei ausgewählt wurde, wird eine Fehlermeldung erzeugt (glaube Fehlernummer 4).

Zitat:
2.Wie übergebe ich am Schluss den Namen des Users, der die Datei geladen hat in die DB?
'".mysql_real_escape_string(trim(???))."' ; ;


Naja, also ich gehe mal davon aus, dass ein User eingeloggt sein muss, also kennst du ja seine ID ($_SESSION['UserID'] oder so). Mit der ID kannst du den Namen doch aus der Datenbank auslesen.

Zitat:
3. Den Mime-Typ von Bildern ist ja z.B. image/pjpeg. Weisst du wie derjenige von pdf ist?


http://de.selfhtml.org/diverses/mimetypen.htm#uebersicht

Allgemein verwende ich zur Formularprüfung folgende Funktion:

PHP:
<?php
    
function checkUpload($_FILES$maxsize)
    {
         
$key key($_FILES);
         
$errors = array();
         
// Uploadfehler prüfen
         
switch ($_FILES[$key]['error']){
                case 
1$errors[] = "Bitte w&auml;hlen Sie eine Datei aus, die <b>kleiner als ".$maxsize/(1024*1024)." MB</b> ist.";
                         break;
                case 
2$errors[] = "Bitte w&auml;hlen Sie eine Datei aus, die <b>kleiner als ".$maxsize/(1024*1024)." MB</b> ist.";
                         break;
                case 
3$errors[] = "Die Datei wurde nur teilweise hochgeladen.";
                         break;
                case 
4$errors[] = "Es wurde keine Datei ausgew&auml;hlt.";
                         break;
                default : break;
        }
        
// Dateigröße prüfen
        
if($_FILES[$key]['size'] > $maxsize)
            
$errors[] = "Bitte w&auml;hlen Sie eine Datei aus, die <b>kleiner als ".$maxsize/(1024*1024)." MB</b> ist.";

         return 
$errors;
    }
?>


$_FILES ist das Array aus dem Upload und $maxsize die maximale Dateigröße in Byte


Profil ansehen Mail senden
02.02.2007 13:18 Uhr
mdean
Forenposter
 
registriert 03.01.2007
wohnt in Schweiz
Beiträge 90
Hab mal versucht etwas zu schreiben, aber es funktioniert noch nicht. Hab ich was falsch gemacht?

Hier der code:
PHP:
<?
    error_reporting
(E_ALL);
    include 
'../conect.php';

    
$connid = @mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PASS) OR die("Error: ".mysql_error());
    
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
    
    if(isset(
$_POST['Send_x']) AND $_POST['Send_x'] == "Upload") {
            
            
$errors = array();

            
// Prüft, ob ein Interpret eingegeben wurde
            
if(trim($_POST['Interpret'])=='')
                
$errors[]= "Bitte geben Sie den Namen des Interpreten an.";
            
// Prüft, ob der Interpret mindestens 2 Zeichen enthält
            
elseif(strlen(trim($_POST['Interpret'])) < 2)
                
$errors[]= "Der Name des Interpreten muss mindestens 2 Zeichen lang sein";
            
// Prüft ob ein Album angegeben wurde
            
if(trim($_POST['Album'])=='')
                
$errors[]= "Bitte geben Sie den Namen des Albums an.";
            
// Prüft ob ein Songname eingegeben wurde
            
if(trim($_POST['Songname'])=='')
                
$errors[]= "Bitte geben Sie den Titel für den Song an.";
            
            
// Prüft ob der richtige Mime Typ vorliegt
            
$erlaubte_typen = array('image/pjpeg',
                                    
'image/jpeg',
                                    
'application/pdf'
                                   
);
                if(!
in_array($_FILES['datei']['type'], $erlaubte_typen))
                    
$errors[] = "Der Mime-Typ ihrer Datei ist verboten.";
            
            
// Prüft ob die Datei die richtige Endung hat
            
$erlaubte_endungen = array('jpeg',
                                       
'jpg',
                                       
'pdf'
                                      
);
                                      
             
$endung strtolower(substr($_FILES['datei']['name'], strrpos($_FILES['datei']['name'], '.')+1));
                    if(!
in_array($endung$erlaubte_endungen))
                        
$errors[] = "Die Dateiendung muss .jpeg .jpg oder .pdf lauten. ";
            
            
// Prüft ob die Datei die richtige grösse hat
            
if($_FILES['datei']['size'] > 5*1024*1024)
                
$errors[] = "Bitte w&auml;hlen Sie eine Datei aus, die kleiner als 5 MB ist.";
                
            if(
count($errors)){
                echo 
"Ihre Datei konnte nicht gespeichert werden.<br>\n".
                     
"<br>\n";
                foreach(
$errors as $error)
                    echo 
$error."<br>\n";
            }
            
            else {
            
            
//Datei speichern
            
$uploaddir 'noten/';
            
            
//Neuen Dateinamen erstellen
            
$Name "DRUM_".substr(microtime(),-8).".".$endung;
            
            
//Upload
            
if (move_uploaded_file($_FILES['datei']['tmp_name'], $uploaddir.$Name)) {
                
$sql "INSERT INTO
                               notes
                               (UserID,
                                 Newname,
                                 Interpret,
                                 Album,
                                 Songname,
                                 Date
                                 )
                        VALUES
                                ('"
.mysql_real_escape_string(trim($_SESSION['UserID']))."',
                                 '"
.mysql_real_escape_string(trim($Name))."',
                                 '"
.mysql_real_escape_string(trim($_POST['Interpret']))."',
                                 '"
.mysql_real_escape_string(trim($_POST['Album']))."',
                                 '"
.mysql_real_escape_string(trim($_POST['Songname']))."',
                                 CURDATE()
                                )
                           "
;            
        
                    }
?>
Profil ansehen
02.02.2007 16:46 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Zitat:
Hab mal versucht etwas zu schreiben, aber es funktioniert noch nicht. Hab ich was falsch gemacht?


Schwer zu sagen, was genau soll denn passieren und was passiert nicht?
Gibts ne Fehlermeldung?
Steht error_reporting(E_ALL); am Anfang?

Allgemein fällt auf, dass du den Query nicht ausführst, also es fehlt sowas wie mysql_query($sql);

Wie sieht dein Formular denn aus, hast du in der Definition auch enctype="multipart/form-data" stehen und die Uploadfelder richtig benannt/definiert?


Profil ansehen Mail senden
Seite: <  1 2 3 4 5 6 7 8 9  > no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik