2016-04-02 14 views
1
i veritabanında .mp3 dosyanın yolunu depolamak.Bu ancak bir dosyayı indirirken, gerçek dosya yüklenmiyor

, 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

+0

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

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

, büyük olasılıkla belirli bir dizine geçici dosya taşımak ve veritabanında nedir göre yeniden adlandırmak isteyeceksiniz, yüklemeyi tamamlayın. PHP 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.

İlgili konular