Jak uzyskać pełną ścieżkę pliku podczas wybierania pliku za pomocą <input type=‘file’>
<input type="file" id="fileUpload">
<script type="text/javascript">
function getFilePath(){
$('input[type=file]').change(function () {
var filePath=$('#fileUpload').val();
});
}
</script>
ale plik filePath var zawiera only name
wybrany plik, a nie plik full path
.
Przeszukałem go w sieci, ale wydaje się, że ze względów bezpieczeństwa przeglądarki (FF, chrome) podają tylko nazwę pliku.
Czy istnieje inny sposób uzyskania pełnej ścieżki wybranego pliku?
javascript
jquery
file-upload
filepath
Yogesh Pingle
źródło
źródło
Odpowiedzi:
Ze względów bezpieczeństwa przeglądarki na to nie zezwalają, tzn. JavaScript w przeglądarce nie ma dostępu do systemu plików, jednak używając API plików HTML5, tylko Firefox zapewnia
mozFullPath
właściwość, ale jeśli spróbujesz uzyskać wartość, zwróci pusty ciąg znaków:http://jsfiddle.net/SCK5A/
Więc nie marnuj czasu.
edycja: Jeśli potrzebujesz ścieżki pliku do odczytu pliku, możesz zamiast tego użyć interfejsu API FileReader . Oto pokrewne pytanie dotyczące SO: Wyświetl podgląd obrazu przed przesłaniem.
źródło
Spróbuj tego:
Daje ci tymczasową ścieżkę, która nie jest dokładna, możesz użyć tego skryptu, jeśli chcesz pokazać wybrane obrazy, tak jak w tym przykładzie jsfiddle (spróbuj, wybierając obrazy, a także inne pliki): -
JSFIDDLE
Oto kod: -
HTML: -
JS: -
Nie jest to dokładnie to, czego szukałeś, ale może być gdzieś pomocne.
źródło
Nie możesz tego zrobić - przeglądarka nie pozwoli na to ze względów bezpieczeństwa.
I inne
Przegapiłeś
);
to pod koniec funkcji zmiany zdarzenia.Nie twórz też funkcji zmiany zdarzenia, po prostu użyj jej jak poniżej,
źródło
D
katalogu, ale wartość nadchodziC:\fakepath\test.xls
Nie możesz Bezpieczeństwo powstrzymuje Cię od wiedzy na temat systemu archiwizacji komputera klienckiego - może nawet nie mieć! Może to być komputer Mac, PC, tablet lub lodówka z dostępem do Internetu - nie wiesz, nie możesz wiedzieć i nie będziesz wiedzieć. A podanie pełnej ścieżki może dać ci trochę informacji o kliencie - szczególnie jeśli jest to na przykład dysk sieciowy.
W rzeczywistości można go uzyskać w określonych warunkach, ale wymaga kontrolki ActiveX i nie będzie działać w 99,99% przypadków.
Nie możesz go użyć do przywrócenia pliku do pierwotnej lokalizacji (ponieważ nie masz absolutnej kontroli nad tym, gdzie są przechowywane pliki do pobrania, a nawet jeśli są one przechowywane), więc w praktyce i tak nie jest to zbyt użyteczne.
źródło
Miałaś na myśli to?
źródło
Możesz użyć następującego kodu, aby uzyskać działający lokalny adres URL przesłanego pliku:
źródło
Jedna interesująca uwaga: chociaż nie jest to dostępne w Internecie, jeśli używasz JS w Electronie, możesz to zrobić.
Korzystając ze standardowego pliku wejściowego HTML5, otrzymasz dodatkową
path
właściwość dla wybranych plików, zawierającą rzeczywistą ścieżkę pliku.Pełne dokumenty tutaj: https://github.com/electron/electron/blob/master/docs/api/file-object.md
źródło
Możesz to zrobić, jeśli przesłanie całego folderu jest dla Ciebie opcją
zmiana zdarzenia będzie zawierać:
źródło
nigdy nie powinieneś tego robić ... i myślę, że wypróbowanie go w najnowszych przeglądarkach jest bezużyteczne (z tego co wiem) ... wszystkie najnowsze przeglądarki z drugiej strony nie pozwolą na to ...
niektóre inne linki, przez które można przejść, aby znaleźć obejście, takie jak pobieranie wartości na serwerach, ale nie po stronie klienta (javascript)
Pełna ścieżka do pliku wejściowego za pomocą jQuery
Jak uzyskać ścieżkę do pliku z formularza wejściowego HTML w Firefox 3
źródło
element pliku ma, a wywołanie tablicy
files
zawiera wszystkie niezbędne rzeczy, których potrzebujeszźródło
Możesz uzyskać pełną ścieżkę wybranego pliku do przesłania tylko przez IE11 i MS Edge.
źródło