Hallo, ich habe viele Foren und Websites gelesen, die Ihnen sagen, wie man ein Bild auf einen Server hochlädt, und ich habe es geschafft, dies zu schaffen, ich kann eine Datei auf meinen Server hochladen, aber das Speichern des Dateinamens funktioniert auf dem folgenden Beispiel, das ich gefunden habe, und ich muss auch ein Formular erstellen, das mehr Daten in die Datenbank eingegeben werden können. Ich komme damit nicht weiter, da ich schon viel mit PHP gearbeitet habe. Ich habe schon viele Tutorials auf verschiedenen Websites ausprobiert, ohne Erfolg, aber kann mir jemand helfen? Ich brauche es für ein Projekt I'm tun.
Ich versuche, ein CMS zu erstellen, das es den Benutzern ermöglicht, ein Foto eines Bandmitglieds hochzuladen und Informationen über sie zu speichern, so dass sie auf einer Webseite für die Öffentlichkeit angezeigt werden können.
Meine Tabelle sieht wie folgt aus:
Field Type Null Default
id int(10) No
nameMember varchar(25) No
bandMember text No
photo varchar(30) No
aboutMember text No
otherBands text No
Das Formular, das ich haben möchte, sieht wie folgt aus:
<h1>Adding a new Band Member or Affiliate</h1>
<form method="post" action="addMember.php" enctype="multipart/form-data">
<p>
Please Enter the Band Members Name.
</p>
<p>
Band Member or Affiliates Name:
</p>
<input type="text" name="nameMember"/>
<p>
Please Enter the Band Members Position. Example:Drums.
</p>
<p>
Member's Position:
</p>
<input type="text" name="bandMember"/>
<p>
Please Upload a Photo in gif or jpeg format. The file name should be named after the Members name. If the same file name is uploaded twice it will be overwritten!
</p>
<p>
Photo:
</p>
<input type="file" name="filep" size=35 />
<p>
Please Enter any other information about the band member here.
</p>
<p>
Other Member Information:
</p>
<textarea rows="10" cols="35" name="aboutMember">
</textarea>
<p>
Please Enter any other Bands the Member has been in.
</p>
<p>
Other Bands:
</p>
<input type="text" name="otherBands" size=30 />
<br/>
<br/>
<input TYPE="submit" title="Add data to the Database" value="Add Member"/>
</form>
Das Beispiel, das ein Bild auf den Server hochlädt, und nur das, ist dieses:
<?
if ($_POST["action"] == "Load")
{
$folder = "images/";
move_uploaded_file($_FILES["filep"]["tmp_name"] , "$folder".$_FILES["filep"]["name"]);
echo "
<p align=center>File ".$_FILES["filep"]["name"]."loaded...";
$result = mysql_connect("localhost", "******", "*****") or die ("Could not save image name
Error: " . mysql_error());
mysql_select_db("project") or die("Could not select database");
mysql_query("INSERT into dbProfiles (photo) VALUES('".$_FILES['filep']['name']."')");
if($result) { echo "Image name saved into database
"; }
}
?>
Und das Beispielformular, das ich verwenden muss, ist dieses:
<form action=addMember.php method=post enctype="multipart/form-data">
<table border="0" cellspacing="0" align=center cellpadding="3" bordercolor="#cccccc">
<tr>
<td>File:</td>
<td><input type="file" name="filep" size=45></td>
</tr>
<tr>
<td colspan=2><p align=center>
<input type=submit name=action value="Load">
</td>
</tr>
</table>
</form>
PS: Die Bilddatei ist zum Schreiben geöffnet.
Hier ist die Antwort für diejenigen, die wie ich das ganze Web durchsucht haben, um herauszufinden, wie man diese Aufgabe löst. Hochladen eines Fotos auf einen Server mit dem Dateinamen in einer Mysql-Datenbank gespeichert und andere Form Daten, die Sie in Ihrer Datenbank wollen. Bitte lassen Sie mich wissen, ob es geholfen hat.
Erstens das Formular, das Sie benötigen:
<form method="post" action="addMember.php" enctype="multipart/form-data">
<p>
Please Enter the Band Members Name.
</p>
<p>
Band Member or Affiliates Name:
</p>
<input type="text" name="nameMember"/>
<p>
Please Enter the Band Members Position. Example:Drums.
</p>
<p>
Band Position:
</p>
<input type="text" name="bandMember"/>
<p>
Please Upload a Photo of the Member in gif or jpeg format. The file name should be named after the Members name. If the same file name is uploaded twice it will be overwritten! Maxium size of File is 35kb.
</p>
<p>
Photo:
</p>
<input type="hidden" name="size" value="350000">
<input type="file" name="photo">
<p>
Please Enter any other information about the band member here.
</p>
<p>
Other Member Information:
</p>
<textarea rows="10" cols="35" name="aboutMember">
</textarea>
<p>
Please Enter any other Bands the Member has been in.
</p>
<p>
Other Bands:
</p>
<input type="text" name="otherBands" size=30 />
<br/>
<br/>
<input TYPE="submit" name="upload" title="Add data to the Database" value="Add Member"/>
</form>
Dann verarbeitet dieser Code die Daten aus dem Formular:
<?php
// This is the directory where images will be saved
$target = "your directory";
$target = $target . basename( $_FILES['photo']['name']);
// This gets all the other information from the form
$name=$_POST['nameMember'];
$bandMember=$_POST['bandMember'];
$pic=($_FILES['photo']['name']);
$about=$_POST['aboutMember'];
$bands=$_POST['otherBands'];
// Connects to your Database
mysqli_connect("yourhost", "username", "password") or die(mysqli_error()) ;
mysqli_select_db("dbName") or die(mysqli_error()) ;
// Writes the information to the database
mysqli_query("INSERT INTO tableName (nameMember,bandMember,photo,aboutMember,otherBands)
VALUES ('$name', '$bandMember', '$pic', '$about', '$bands')") ;
// Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
// Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {
// Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>
Code bearbeitet von www.about.com
Wenn Sie weitere Daten in das Formular eingeben möchten, greifen Sie einfach über $_POST auf die übermittelten Daten zu.
Wenn Sie
<input type="text" name="firstname" />
greifen Sie darauf zu mit
$firstname = $_POST["firstname"];
Sie könnten dann Ihre Abfragezeile aktualisieren, so dass sie lautet
mysql_query("INSERT INTO dbProfiles (photo,firstname)
VALUES('{$filename}','{$firstname}')");
Hinweis: Filtern und bereinigen Sie Ihre Daten immer.
Ihr Part:
$result = mysql_connect("localhost", "******", "*****") or die ("Could not save image name
Error: " . mysql_error());
mysql_select_db("project") or die("Could not select database");
mysql_query("INSERT into dbProfiles (photo) VALUES('".$_FILES['filep']['name']."')");
if($result) { echo "Image name saved into database
";
Macht nicht viel Sinn, Ihre Verbindung sollte nicht $result heißen, aber das ist eine Frage der Benennung und nicht der Codierung.
Was ein Kodierungsproblem ist, ist if($result), Sie sagen, wenn Sie sich mit der Datenbank verbinden können, unabhängig davon, ob die Einfügeabfrage fehlschlägt oder erfolgreich ist, werden Sie "Bild in Datenbank gespeichert" ausgeben.
Versuchen Sie hinzufügen do
$realresult = mysql_query("INSERT into dbProfiles (photo) VALUES('".$_FILES['filep']['name']."')");
und ändern Sie die if($result) in $realresult
Ich vermute, dass Ihre Abfrage fehlschlägt, vielleicht haben Sie zusätzliche Spalten oder so etwas?
Versuchen Sie, Ihre Abfrage zu kopieren/einzufügen und das ".$_FILES['filep']['name']." durch test zu ersetzen und die Abfrage in Ihrem Abfragebrowser auszuführen, um zu sehen, ob sie funktioniert.