v2.5.2
Giriş yap

HTML input type:file da tam dosya yolunu öğrenme

sahin0640
2,163 defa görüntülendi ve 4 kişi tarafından değerlendirildi

Başlıkta da yazdığım gibi web sayfama yüklediğin müziğin tam yolunu öğrenmek istiyorum. Ama javascript ile denediğimde "c:fake pathdosyaadı.dosyaUzantısı" olarak bir değer döndürüyor.
PHP, JavaScript veya başka bir yöntemle nasıl tam yolu öğrenebilirim?

Cevap yaz
Cevaplar (5)
canpacis
1809 gün önce

Dostum öncelikle sen olayı çok yanlış anlamışsın, tarayıcıda çalıştıracağın javascript'in senin yüklediğin herhangi bir dosyanın tam yolunu bilmesi imkansız. Bir kere bu olayın güvenlik açıklarını düşününce bile başıma ağrılar giriyor. Ne yapmak istediğini tam olarak bilmiyorum ama senin muhtemelen dosyayı bir sunucuya yüklemen lazım. Sonrasında zaten sunucudaki yolu kullanacaksın, o yolu da backend kodu sağlayacak.

sahin0640
1837 gün önce

Benim istediğim c:dosyayoludosyaadı gibi bir çıtkı almak, ancak bu readURL bana bunun gibi bir değer döndürdü : data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2... bu çoooooooooook uzun anlamsız.

sahin0640
1838 gün önce

Cevap için teşekkürler. Deneme fırsatım olmadı, deneyince sonucu yazarım.

arcface
1838 gün önce

Deneme kodu

Dikkat etmedim yanlış gitmiş burdan bakabilirsin.

arcface
1838 gün önce

dosya sunucuya upload edilene kadar son kullanıcının tarayıcısnda kalır. Ama gene de ben bu dosyayı almak istiyorum diyorsan;
jquery'nin filereader sınıfı ile yapabilirsin örnek kod snip;

function readURL(input) {
  if (input.files && input.files[0]) {
    var reader = new FileReader();
    
    reader.onload = function(e) {
      $('#blah').attr('src', e.target.result);
    }
    
    reader.readAsDataURL(input.files[0]);
  }
}

$("#imgInp").change(function() {
  readURL(this);
});

 <form runat="server">
  <input type='file' id="imgInp" />
  <img id="blah" src="#" alt="image" />
</form>

(Kodu denemek için tıkla)[http://jsfiddle.net/7tdkxwr6/]

Ama derdin sunucuya gönderdikten sonra tutulduğu tmp yolunu almak ise onda da resimi upload ettikten sonra php tarafında şu şekilde alabilirsin;


$_FILES["file"]["tmp_name"];

Sen dosyayı taşıyana kadar yada işlem sonuçlanana kadar tmp yolunda dosya durur bu yolu da üstte verdiğim şekilde alabilirsin.