Bagaimana cara menyimpan nama file dalam database, dengan info lain saat mengunggah gambar ke server menggunakan PHP?

Hai, saya telah membaca banyak forum dan situs web yang memberi tahu Anda cara mengunggah gambar ke server dan saya telah berhasil membuat ini berfungsi, saya dapat mengunggah file ke server saya tetapi menyimpan nama file tidak berfungsi pada contoh berikut yang saya temukan dan saya juga perlu membuat formulir yang memungkinkan lebih banyak data untuk dimasukkan ke database. Saya terjebak dengan ini karena saya telah melakukan banyak PHP sebelumnya. Saya telah sampai pada akhir mencoba berbagai tutorial situs web tanpa banyak keberhasilan, bisakah ada yang membantu saya! Saya membutuhkannya untuk proyek yang saya lakukan.

Pada dasarnya saya mencoba membuat CMS yang memungkinkan pengguna untuk meng-upload foto anggota band dan memiliki informasi yang disimpan tentang mereka sehingga dapat ditampilkan pada halaman web untuk dilihat publik.


Tabel saya terlihat seperti ini:

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      

Formulir yang saya inginkan akan terlihat seperti ini:

   <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>

Contoh yang mengunggah Gambar ke server dan hanya, yaitu ini:

<?

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

"; }

}

?>

Dan bentuk Contoh yang harus saya gunakan adalah ini:

<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: File gambar terbuka untuk ditulis.

Berikut ini adalah jawaban bagi Anda yang mencari seperti yang saya lakukan di seluruh web mencoba mencari tahu bagaimana melakukan tugas ini. Mengunggah foto ke server dengan nama file yang disimpan dalam database mysql dan data formulir lain yang Anda inginkan dalam Database Anda. Tolong beri tahu saya jika itu membantu.

Pertama formulir yang Anda butuhkan:


    <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">

            <br/>
            <br/>
            <input TYPE="submit" name="upload" title="Add data to the Database" value="Add Member"/>

Kemudian kode ini memproses data Anda dari formulir:

   <?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.";
}
?> 

Kode diedit dari www.about.com

Komentar (2)

Jika Anda ingin memasukkan lebih banyak data ke dalam formulir, Anda cukup mengakses data yang dikirimkan melalui $_POST.

Jika Anda memiliki

<input type="text" name="firstname" />

Anda mengaksesnya dengan

$firstname = $_POST["firstname"];

Anda kemudian bisa memperbarui baris kueri Anda untuk membaca

mysql_query("INSERT INTO dbProfiles (photo,firstname)
             VALUES('{$filename}','{$firstname}')");

Catatan: Selalu filter dan sanitasi data Anda.

Komentar (1)

Bagian Anda:

$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

";

Tidak masuk akal, koneksi Anda seharusnya tidak diberi nama $result tetapi itu adalah masalah penamaan bukan masalah pengkodean.

Yang merupakan masalah pengkodean adalah if($result), Anda mengatakan jika Anda dapat terhubung ke database terlepas dari kueri sisipan gagal atau berhasil, Anda akan menghasilkan "Gambar disimpan ke dalam database &".

Coba tambahkan do

$realresult = mysql_query("INSERT into dbProfiles (photo) VALUES('".$_FILES['filep']['name']."')");

dan ubah if($hasil) menjadi $hasil nyata

Saya menduga kueri Anda gagal, mungkin Anda memiliki kolom tambahan atau semacamnya?

Coba salin/tempel kueri Anda, ganti ".$_FILES['filep']['nama']." dengan test dan jalankan di browser kueri Anda dan lihat apakah itu masuk.

Komentar (1)