Upload mit MySQL

BomberJack

Erfahrenes Mitglied
Hi all,
ich habe ein skript zum datei uploaden und möchte dies so erweitern das zusätzliche Formulardaten und der dateipfad in einer mysql db gespeichert wird das ich dies dann bequem abrufen kann.
Mein skript sieht momentan so aus wobei ich in einer config datei die größe,pfad und dateiendung festlege. Ich hoffe es kann mir jemand helfen weil ich keine ahnung hab wie ich das in eine mysql speichern kann :(


PHP:
<?

switch($upload) {
default:
include "config.php";
echo "
<html>

<head>
<title>Upload</title>
</head>

<body topmargin=\"10\" leftmargin=\"0\" bgcolor=\"#18576F\" link=\"#818EA0\" vlink=\"#5C697A\" alink=\"#818EA0\" text=\"#FFFFFF\" style=\"font-family: Verdana; font-size: 8pt; color: #FFFFFF\">



<div align=\"center\">
  <center>
  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"400\" id=\"AutoNumber1\">
    <tr>
      <td bgcolor=\"#5E6A7B\" height=\"25\">
      <p align=\"center\"><font size=\"2\"><b>Upload File</b></font></td>
    </tr>
    <tr>
      <td bgcolor=\"#818EA0\"><font size=\"2\">Folgendes ist zu beachten:</font><ul type=\"square\">
        <li><font size=\"2\">Dateiname darf nur <b>";
        if (($extensions == "") or ($extensions == " ") or ($ext_count == "0") or ($ext_count == "") or ($limit_ext != "yes") or ($limit_ext == "")) {
           echo "*.rep,*.zip,*.rar sein";
        } else {
        $ext_count2 = $ext_count+1;
        for($counter=0; $counter<$ext_count; $counter++) {
            echo "&nbsp; $extensions[$counter]";
        }
        }
        if (($limit_size == "") or ($size_limit != "yes")) {
            $limit_size = "any size";
        } else {
            $limit_size .= " bytes";
        }
        echo"</b></font></li>
        <li><font size=\"2\">Maximale Dateigröße ist $limit_size</font></li>
        <li><font size=\"2\">Keine Leerzeichen im Dateinamen</font></li>
        </li>
      </ul>
      			<table border=\"1\" cellpadding=\"0\" cellspacing=\"2\">
				<tr>
					<td>Sieger</td>
					<td>Verlier</td>
				</tr>
				<tr>
					<td><input type=\"text\" name=\"winnername\" size=\"24\" value=\"Nickname\"></td>
					<td><input type=\"text\" name=\"loosername\" size=\"24\" value=\"Nickname\"></td>
				</tr>
				<tr>
					<td></td>
					<td></td>
				</tr>
				<tr>
					<td>Map:</td>
					<td><select name=\"selectName\" size=\"1\">
							<option value=\"1\">Testmap1</option>
							<option value=\"2\">testmap2</option>
							<option value=\"3\">testmap3</option>
						</select></td>
				</tr>
				<tr>
					<td>Zeit ca.</td>
					<td>
						<table border=\"1\" cellpadding=\"0\" cellspacing=\"2\" width=\"72\">
							<tr>
								<td><input type=\"text\" name=\"textfieldName\" size=\"10\"></td>
								<td>min</td>
							</tr>
						</table>
					</td>
				</tr>
			</table>
		</form>
      <form method=\"POST\" action=\"$PHP_SELF?upload=doupload\" enctype=\"multipart/form-data\">
<p align=\"center\">
<input type=file name=file size=30 style=\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1\"><br>
<br>
<button name=\"submit\" type=\"submit\" style=\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1\">Hochladen</button>
</p>
</form>
      <p>
</td>
    </tr>
  </table>
  </center>
</div>



</body>

</html>";
break;
case "doupload":
include "config.php";
$endresult = "<font size=\"2\">Replay/zip/rar Datei hochgeladen</font>";
if ($file_name == "") {
$endresult = "<font size=\"2\">Keine Datei ausgewählt</font>";
}else{
if(file_exists("$absolute_path/$file_name")) {
$endresult = "<font size=\"2\">Diese Datei gibt es bereits auf dem Server</font>";
} else {
if (($size_limit == "yes") && ($limit_size < $file_size)) {
$endresult = "<font size=\"2\">Dateigröße zu groß</font>";
} else {
$ext = strrchr($file_name,'.');
if (($limit_ext == "yes") && (!in_array($ext,$extensions))) {
$endresult = "<font size=\"2\">Dies ist keine Replay/zip/rar Datei</font>";
}else{
@copy($file, "$absolute_path/$file_name") or $endresult = "<font size=\"2\">Kann Datei nicht kopieren</font>";
}
}
}
}
echo "
<html>

<head>
<title>Replay Upload</title>
</head>

<body topmargin=\"10\" leftmargin=\"0\" bgcolor=\"#18576F\" link=\"#818EA0\" vlink=\"#5C697A\" alink=\"#818EA0\" text=\"#FFFFFF\" style=\"font-family: Verdana; font-size: 8pt; color: #FFFFFF\">



<div align=\"center\">
  <center>
  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"400\" id=\"AutoNumber1\">
    <tr>
      <td bgcolor=\"#5E6A7B\" height=\"25\">
      <p align=\"center\"><font size=\"2\"><b>Replay hochladen</b></font></td>
    </tr>
    <tr>
      <td bgcolor=\"#818EA0\">
      <center> $endresult </center>
	</td>
    </tr>
    <tr>
      <td bgcolor=\"#5E6A7B\" height=\"25\">
      <p align=\"center\"><font size=\"1\">
      </tr>
  </table>
  </center>
</div>


</body>

</html>";
break;
}
?>


Schonmal vielen dank


Gruß
BomberJack
 
Also ich möchte die formulardaten in eine mysql db schreiben und den pfad von der datei d.h. den dateinamen auch in eine mysql tabelle speichern. Damit ich das ganze dann schön in einer tabelle ausgeben kann.
 
na dann musst du ganz normal den Formularfeldnamen in die DB schreiben. Den dateipfad legst du ja fest, wenn du sagst wo er die datei ablegen soll.Der dateiname wird wird ja von feld <<file>> übergeben.
 
PHP:
//Upload-Prozedur
        $pfad = "Pfad/zum/upoad/order/";    // Achtung: Schreibrechte vergeben!
        $name1 = $_FILES['file']['name'];  // file = Name deines formfeldes
	$tempname1 = $_FILES['file']['tmp_name'];
	$type1 = $_FILES['file']['type'];
	$size1 = $_FILES['file']['size'];
	@copy ($tempname1,$pfad.$name1);

PHP:
//MySQl-Eintrag
$dbdatei = $pfad.$name1; //Pfad- & Dateiname zusammenschreiben
$eintrag = "INSERT INTO datenbank (feldfuerdateiname) VALUES ('$dbdatei')";
$eintragen = mysql_query("$eintrag");

So das wars eigentlich.
Worauf noch zu achten ist, ist das Du den Pfadnamen mit abschließendem / versiehst.
Bei Fragen, fragen ;)
 
Geht immernoch nicht ganz so wie ich will kann zwar die formulardaten reinschreiben aber bei dem dateinamen bringt er mir irgendwelchen komischen kram in die tabelle.

mein code schaut etz so aus wobei ich den mysql connect aus der ersten zeile weggelassen hab :)
evtl. weiß ja jemand hilfe der hat mir folgendes in die tabelle geschrieben:
"/tmp/phpbvFVLe" in der der dateipfad stehen soll eigentlich brauch ich nur den dateinamen den er da reinschreiben soll also pfad ist nicht so wichtig zwar sehr vorteilhaft aber geht auch ohne brauche halt dringend die funktion das er den richtigen dateinamen in die MySQL db schreibt Danke schonmal :)



PHP:
switch($upload) {
default:
include "config.php";
echo "
<html>

<head>
<title>Upload</title>
</head>

<body topmargin=\"10\" leftmargin=\"0\" bgcolor=\"#18576F\" link=\"#818EA0\" vlink=\"#5C697A\" alink=\"#818EA0\" text=\"#FFFFFF\" style=\"font-family: Verdana; font-size: 8pt; color: #FFFFFF\">



<div align=\"center\">
  <center>
  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"400\" id=\"AutoNumber1\">
    <tr>
      <td bgcolor=\"#5E6A7B\" height=\"25\">
      <p align=\"center\"><font size=\"2\"><b>Upload File</b></font></td>
    </tr>
    <tr>
      <td bgcolor=\"#818EA0\"><font size=\"2\">Folgendes ist zu beachten:</font><ul type=\"square\">
        <li><font size=\"2\">Dateiname darf nur <b>";
        if (($extensions == "") or ($extensions == " ") or ($ext_count == "0") or ($ext_count == "") or ($limit_ext != "yes") or ($limit_ext == "")) {
           echo "*.rep,*.zip,*.rar sein";
        } else {
        $ext_count2 = $ext_count+1;
        for($counter=0; $counter<$ext_count; $counter++) {
            echo "&nbsp; $extensions[$counter]";
        }
        }
        if (($limit_size == "") or ($size_limit != "yes")) {
            $limit_size = "any size";
        } else {
            $limit_size .= " bytes";
        }
        echo"</b></font></li>
        <li><font size=\"2\">Maximale Dateigröße ist $limit_size</font></li>
        <li><font size=\"2\">Keine Leerzeichen im Dateinamen</font></li>
        </li>
      </ul>

      <form method=\"POST\" action=\"$PHP_SELF?upload=doupload\" enctype=\"multipart/form-data\">
<p align=\"center\">
      			<table border=\"1\" cellpadding=\"0\" cellspacing=\"2\">
				<tr>
					<td>Sieger</td>
					<td>Verlier</td>
				</tr>
				<tr>
					<td><input type=\"text\" name=\"Sieger\" size=\"24\" value=\"Nickname\"></td>
					<td><input type=\"text\" name=\"Looser\" size=\"24\" value=\"Nickname\"></td>
				</tr>
				<tr>
					<td></td>
					<td></td>
				</tr>
				<tr>
					<td>Map:</td>
					<td><select name=\"Map\" size=\"1\">
							<option value=\"1\">Testmap1</option>
							<option value=\"2\">testmap2</option>
							<option value=\"3\">testmap3</option>
						</select></td>
				</tr>
				<tr>
					<td>Zeit ca.</td>
					<td>
						<table border=\"1\" cellpadding=\"0\" cellspacing=\"2\" width=\"72\">
							<tr>
								<td><input type=\"text\" name=\"Laenge\" size=\"10\"></td>
								<td>min</td>
							</tr>
						</table>
					</td>
				</tr>
			</table>

<input type=file name=file size=30 style=\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1\"><br>
<br>
<button name=\"submit\" type=\"submit\" style=\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1\">Hochladen</button>
</p>
</form>
      <p>
</td>
    </tr>
  </table>
  </center>
</div>



</body>

</html>";
break;
case "doupload":
include "config.php";
##Einträge
$eintrag = "INSERT INTO Replay (Sieger, Rasse1, Looser, Rasse2,
  Map, Dateipfad, Laenge) VALUES ('$Sieger', '$Rasse1', '$Looser', '$Rasse2',
  '$Map','$file','$Laenge')";
$eintragen = mysql_query($eintrag);



$endresult = "<font size=\"2\">Replay/zip/rar Datei hochgeladen</font>";
if ($file_name == "") {
$endresult = "<font size=\"2\">Keine Datei ausgewählt</font>";
}else{
if(file_exists("$absolute_path/$file_name")) {
$endresult = "<font size=\"2\">Diese Datei gibt es bereits auf dem Server</font>";
} else {
if (($size_limit == "yes") && ($limit_size < $file_size)) {
$endresult = "<font size=\"2\">Dateigröße zu groß</font>";
} else {
$ext = strrchr($file_name,'.');
if (($limit_ext == "yes") && (!in_array($ext,$extensions))) {
$endresult = "<font size=\"2\">Dies ist keine Replay/zip/rar Datei</font>";
}else{
@copy($file, "$absolute_path/$file_name") or $endresult = "<font size=\"2\">Kann Datei nicht kopieren</font>";
}
}
}
}
echo "
<html>

<head>
<title>Replay Upload</title>
</head>

<body topmargin=\"10\" leftmargin=\"0\" bgcolor=\"#18576F\" link=\"#818EA0\" vlink=\"#5C697A\" alink=\"#818EA0\" text=\"#FFFFFF\" style=\"font-family: Verdana; font-size: 8pt; color: #FFFFFF\">



<div align=\"center\">
  <center>
  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"400\" id=\"AutoNumber1\">
    <tr>
      <td bgcolor=\"#5E6A7B\" height=\"25\">
      <p align=\"center\"><font size=\"2\"><b>Replay hochladen</b></font></td>
    </tr>
    <tr>
      <td bgcolor=\"#818EA0\">
      <center> $endresult </center>
	</td>
    </tr>
    <tr>
      <td bgcolor=\"#5E6A7B\" height=\"25\">
      <p align=\"center\"><font size=\"1\">
      </tr>
  </table>
  </center>
</div>


</body>

</html>";
break;
}
?>
 
bevor ich es vergesse hier mal noch die config file die er ausführt.

PHP:
$absolute_path = "/***/www/htdocs/***/upload"; //Absuluter pfad
$size_limit = "yes"; // yes oder no eingeben
$limit_size = "20000000"; //Maximale Dateigröße
$limit_ext = "no"; // ja oder nein wieder
$ext_count = "3"; // wievile??
$extensions = array(".rep", ".zip", ".rar"); //welche 
?>
 
Zurück