|
|
User gesamt
|
:
|
2453471
|
User online
|
:
|
4
|
|
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
|
|
|
|
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.
|
|
|
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 Fragen
mdean
|
|
|
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ählen Sie eine Datei aus, die <b>kleiner als ".$maxsize/(1024*1024)." MB</b> ist.";
break;
case 2: $errors[] = "Bitte wä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ählt.";
break;
default : break;
}
// Dateigröße prüfen
if($_FILES[$key]['size'] > $maxsize)
$errors[] = "Bitte wä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
|
|
|
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ä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()
)
";
}
?>
|
|
|
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?
|
|
|
Seite:
|
<
1
2
3
4
5
6
7
8
9
>
|
|
|
Powered by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
Designed by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
|
|
|
|
|