, sadece adı yapmak çalışıyorum ve kullanıcı bilgisi. Burada dosya yolu güncelliyor ama PHP POST aracılığıyla bir dosya gönderdiğinizde gerçek .mp3 dosyası şarkılari bir online müzik kütüphanesi, yönetici olacak müzik dosyalarını yüklemek mümkün
1
i veritabanında .mp3 dosyanın yolunu depolamak.Bu ancak bir dosyayı indirirken, gerçek dosya yüklenmiyor
A
cevap
1
klasörü başa çıkma değildir
<?php
if($_POST[ins])
{
@mkdir("songs");
$spath="songs/".time()."-".$_FILES[sonsor][name];
copy($_FILES[sonsor][tmp_name],$spath);
$son="insert into `songs` values('','$_POST[sonam]','$_POST[soalmoi]','$spath')";
//echo $s;
mysql_query($son);
header("location:songs.php?");//action=show&msg=va
}
?>
<form method="POST" action="" enctype="multipart/form-data">
<table>
<tr>
<td>Song Name</td>
<td><input type="text" name="sonam"></td>
</tr>
<tr>
<td>Album/Movie</td>
<td><input type="text" name="soalmoi"></td>
</tr>
<tr>
<td>Song File</td>
<td><input type="file" name="sonsor"></td>
</tr>
<tr>
<td><input type="submit" name="ins"></td>
</tr>
</table>
</form>
kodlama, sen $ _FILES kullanmalıdır Dosya almak için $ _POST yerine. Senin durumunda
, dosyayı ve özelliklerini erişmek için, kullanmak gerekir:$fi = $_FILES["sonsor"]
hangisi adıyla sonsor
sahada yüklenen dosyayı temsil ilişkili bir dizi. Şimdi
move_uploaded_file()
önerir: düzgün çalışıp çalışmadığını
move_uploaded_file($fi["tmp_name"], $target_path)
yöntem true döndürür. Daha fazla güvenlik kontrolünün yapılması tavsiye edilir; Örnek için check out W3Schools.
Kodunuz ** geniş açık ** SQL enjeksiyon saldırılarına karşı. Bu sorunu gidermek için PDO veya benzeri ile parametreli sorgular kullanın. Ayrıca, istemcinin diskteki dosya adlarını belirtmesine izin veriyorsunuz, bu iyi bir fikir değil. Birisi 'thingevil.php' yükleyebilir ve sunucunuzla istediklerini etkili bir şekilde yapabilir. İstemcinin dosya adını kontrol etmesine izin vermeyin. Son olarak, "Konum:" başlığınız, teknik özelliklerle uyumlu olacak şekilde tam bir URL olmalıdır. Göreli bir URL yeterli değildir, ancak çoğu tarayıcıda çalışır. – Brad