Nasıl mysql için, sunucuya iki dosya yerine bir dosya yüklemek için dosya adını formu ve komut dosyası düzenlerim

2 Cevap php

Burada bulunan formu ve PHP kodu başarıyla sunucusundaki bir klasöre veritabanı ve dosyanın kendisi bir dosya adı yüklemek için kullanılır olmuştur. Ben yerine sadece bir iki dosya aynı anda yükleme için izin formu ve kod düzenlemek gerekir. Dosyaların kendilerini sunucusundaki bir klasöre gidecek olurken dosya adlarını veritabanına gidecek. MySQL veritabanı alanlarında dosya her thusly statik dizeleri ile devam edilmelidir; "Images /" ve "flash /". Görüntüler için bir komut zaten bu şekilde, ben sadece ikinci bir dosya upload (yüklenen dosyalar sadece form üzerinde. Şimdi olduğu yolu jpeg jpeg ve flaş yerine olacağını kabul etmek senaryoyu değiştirme için gereken ikinci dosya alan adı Flaş taşıyabiliyordu. it "flaş" adında ek bir alana sahip olacak bu yüzden MySQL veritabanı düzenlediğiniz.

Kısacası, ben sadece 2 dosyaları yerine birini yükleyerek, artık yapar tam olarak reklam çalışması için bu gerekiyor. Ben bunu nasıl yaparlar?

<form enctype="multipart/form-data" action="add.php" method="POST"> 
Name: <input type="text" name="name"><br> 
E-mail: <input type="text" name = "email"><br> 
Phone: <input type="text" name = "phone"><br> 
Photo: <input type="file" name="photo"><br>
STK: <input type="text" name = "STK"><br>
<input type="submit" value="Add"> 
</form>
</body>
</html>

<?php 

//This is the directory where images will be saved 
$target = "images/"; 
$target = $target . basename( $_FILES['photo']['name']); 

//This gets all the other information from the form 
$ID=$_POST['ID'];
$name=$_POST['name']; 
$email=$_POST['email']; 
$phone=$_POST['phone']; 
$pic=($_FILES['photo']['name']); 
$STK=$_POST['STK'];

// Connects to your Database 
mysql_connect("localhost", "root", "") or die(mysql_error()) ; 
mysql_select_db("employees") or die(mysql_error()) ; 

//Writes the information to the database 
mysql_query("INSERT INTO `employees` VALUES ('$ID','$name', '$email', '$phone', 'images/$pic','$STK')") ; 

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

2 Cevap

tüm formunun ilk değiştirilmesi gerekir:

Photo 1: <input type="file" name="photo[]"><br>
Photo 2: <input type="file" name="photo[]"><br>

ikinci:

Eğer olur: İkinci fotoğraf dosya adını saklamak için veritabanında başka bir alan gerekir

sonra sadece $_Files dizi boyunca çalıştırmak için foreach() döngü kullanmak

Flash dosyalarından fotoğrafları ayırmak istiyorsanız, bunu gibi formunu değiştirmek istiyorsunuz:

Photo: <input type="file" name="photo"><br />
Flash file: <input type="file" name="flash"><br />

ve sonra ekleyin:

$pic=($_FILES['photo']['name']);
$flash=($_FILES['flash']['name']);

Ve nihayet buna göre INSERT sorgusu eklemek. Sfmoe dedi gibi, [(3)], birden fazla fotoğraf and birden fazla flash dosyaları, sadece daha fazla alan eklemek izin {içine photo ve flash açmak istiyorsanız } ve flash[] (giriş etiketleri) ve foreach döngü kullanmak.