• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak pobrać ścieżkę do pliku z input type="file" za pomocą javascript lub jquery?

+1 głos
1,618 wizyt
pytanie zadane 28 czerwca 2020 w JavaScript przez SCpl Użytkownik (590 p.)

Kod wygląda w skrócie tak:

<html lang="pl">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
		<link href="style.css" rel="stylesheet" type="text/css">
	</head>
	<body>
                <input type="file" onchange="obraz()">
                <img id="obraz">
		<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
                <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
                <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
		<script src="script.js"></script>
	</body>
</html>
function obraz() {
	var sciezka = [...];
	document.getElementById("obraz").src = "file:///" + sciezka;
}

I chciałbym pobrać do zmiennej "sciezka" ścieżkę do pliku, ale nie wiem, jak. Z góry dziękuje. :D

2 odpowiedzi

+2 głosów
odpowiedź 28 czerwca 2020 przez Comandeer Guru (607,980 p.)
wybrane 28 czerwca 2020 przez SCpl
 
Najlepsza
Nie da się. Przeglądarki wstawiają tam fałszywe ścieżki, żeby żadne prywatne informacje (np. nazwa użytkownika) nie wyciekły.

Niemniej da się dostać bezpośrednio do pliku w inpucie, przez input.files i odczytać go przy pomocy FileReadera: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL
komentarz 28 czerwca 2020 przez SCpl Użytkownik (590 p.)
A to działa na wszystkich przeglądarkach, czy tylko na FireFoxie?
1
komentarz 28 czerwca 2020 przez Comandeer Guru (607,980 p.)
We wszystkich: https://caniuse.com/#feat=filereader

MDN to de facto oficjalna dokumentacja standardów sieciowych.
0 głosów
odpowiedź 28 czerwca 2020 przez SzkolnyAdmin Szeryf (90,290 p.)
komentarz 28 czerwca 2020 przez SCpl Użytkownik (590 p.)
Ale jak ma mi pomóc informacja, że mogę użyć funkcji replace do podmiany "fakepath", jeśli nie wiem na co to podmienić? Chyba że ja czegoś nie rozumiem.

Podobne pytania

+1 głos
2 odpowiedzi 969 wizyt
pytanie zadane 31 stycznia 2022 w JavaScript przez mi-20 Stary wyjadacz (13,250 p.)
0 głosów
4 odpowiedzi 1,263 wizyt
+1 głos
1 odpowiedź 992 wizyt

93,695 zapytań

142,612 odpowiedzi

323,223 komentarzy

63,224 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...