2012-12-19 14 views
6

Używam zdarzenie drop w JavaScript, aby przesłać pliki za pomocą następującego kodu:javascript ondrop wydarzenie

var fileName = event.dataTransfer.files[0].name;    
var orgValue = document.getElementById('<%=tbfilesCollections.ClientID%>').value; 
if (orgValue == 'undefined') { 
    orgValue = ''; 
} 
orgValue += orgValue == '' ? '' : '\n'; 
orgValue += "*" + fileName; 
document.getElementById('<%=tbfilesCollections.ClientID%>').value = orgValue; 
event.preventDefault(); 
return false; 

Ale ten kod pobiera tylko nazwę pliku ... Muszę uzyskać pełną ścieżkę plik.

Odpowiedz

1

Jak zaznaczono w tym poście, nie można uzyskać pełnej ścieżki dostępu: Javascript File Drop.

Jak wspomniano w komentarzach Michaela Sandino, istnieje sposób, aby to zrobić w Firefoksie z atrybutem "mozFullPath", ale nie widziałem jeszcze uniwersalnie wdrożonego sposobu osiągnięcia tego.

Powodem tego mogę sobie wyobrazić, że przeglądarka nie powinna ujawniać informacji dotyczących struktury folderów komputera klienckiego do aplikacji internetowej, co jest zrozumiałe.

+0

dzięki ... ale jak uzyskać pełną ścieżkę do pliku, np. Dysk Google na przykład. –

+0

Firefox ma atrybut mozFullPath w obiekcie File ... ale to nie jest przenośne oczywiście –

+0

Ponownie nie wierzę, że jest to możliwe w trwały, niezależny od przeglądarki sposób iz pewnością nie jest konieczne. Chodzi o to, że plik jest przesyłany, serwer nie potrzebuje i nie powinien potrzebować pełnej ścieżki. Nawet jeśli użyjesz '' i otrzymasz 'value' po wyborze pliku, otrzymasz tylko nazwę, a nie ścieżkę, mimo że pełna ścieżka jest zapisana na pole. –