Najpierw dodaj w nagłówku tagi:
<script>
function showDialog(openFileDialog) {
document.getElementById(openFileDialog).click();
}
function fileName(openFileDialog) {
return document.getElementById(openFileDialog).value;
}
function hasFile(openFileDialog) {
return document.getElementById(openFileDialog).value != "";
}
function fileNameWithoutFakePath(openFileDialog) {
var fileName = document.getElementById(openFileDialog).value;
return fileName.substr(fileName.lastIndexOf('\\') + 1);
}
function fakePathWithoutFileName(openFileDialog) {
var fileName = document.getElementById(openFileDialog).value;
return fileName.substr(0, fileName.lastIndexOf('\\'));
}
</script>
jeśli masz już skrypt tagi , po prostu dodaj te funkcje powyżej.
W treści lub tagach formularza dodawanie:
<input type="file" style="display:none" id="yourDesiredOrFavoriteNameForTheNewOpenFileDialogInstance"/>
Bez względu na to, gdzie w html, jest tak , jakbyś utworzył nową instancję klasy OpenFileDialog jako zmienną globalną , której nazwa jest identyfikatorem elementu, bez względu na to, gdzie w kodzie lub xaml, ale w skrypcie lub kodzie , nie możesz wpisać jego imienia, a następnie odczytać właściwości lub wywołać funkcji, ponieważ istnieją funkcje globalne, które wykonują te, które nie są zdefiniowane w elemencie input type = "file". Wystarczy nadać tym funkcjom identyfikator ukrytego typu danych wejściowych = "plik", który jest nazwą instancji OpenFileDialog w postaci łańcucha.
Aby ułatwić sobie życie w tworzeniu wystąpień otwartych plików dialogowych do kodu HTML, możesz utworzyć funkcję, która to robi:
function createAndAddNewOpenFileDialog(name) {
document.getElementById("yourBodyOrFormId").innerHtml += "<input type='file' style='display:none' id='" + name + "'/>"
}
a jeśli chcesz usunąć okno dialogowe otwierania pliku, możesz wykonać i użyć następującej funkcji:
function removeOpenFileDialog(name) {
var html = document.getElementById("yourBodyOrFormId").innerHtml;
html = html.replace("<input type='file' style='display:none' id='" + name + "'/>", "");
document.getElementById("yourBodyOrFormId").innerHtml = html;
}
ale zanim usuniesz okno dialogowe otwierania pliku, upewnij się, że istnieje, tworząc i używając następującej funkcji:
function doesOpenFileDialogExist(name) {
return document.getElementById("yourBodyOrFormId").innerHtml.indexOf("<input type='file' style='display:none' id='" + name + "'/>") != -1
}
a jeśli nie chcesz tworzyć i dodawać okien dialogowych otwierania plików w treści lub tagów formularza w html, ponieważ jest to dodawanie ukrytego typu input = "file" s, możesz to zrobić w skrypcie używając powyższej funkcji tworzenia :
function yourBodyOrFormId_onload() {
createAndAddNewOpenFileDialog("openFileDialog1");
createAndAddNewOpenFileDialog("openFileDialog2");
createAndAddNewOpenFileDialog("openFileDialog3");
createAndAddNewOpenFileDialog("File Upload");
createAndAddNewOpenFileDialog("Image Upload");
createAndAddNewOpenFileDialog("bla");
//etc and rest of your code
}
Upewnij się, że w pobliżu tagu body lub formularza dodano:
onload="yourBodyOrFormId_onload()"
Nie musisz robić tego wiersza powyżej, jeśli już to zrobiłeś.
WSKAZÓWKA: Możesz dodać do swojego projektu lub witryny nowy plik JScript, jeśli jeszcze go nie masz, aw tym pliku możesz umieścić wszystkie funkcje okna dialogowego otwierania pliku z dala od tagów skryptu i strony HTML lub formularza internetowego i użyć je w swoim html lub stronie formularza internetowego z tego pliku JScript, ale nie zapomnij wcześniej połączyć html lub strony formularza internetowego z plikiem JScript oczywiście. Możesz to zrobić po prostu przeciągając plik JScript na swoją stronę HTML w formacie głowietagi. Jeśli Twoja strona jest formularzem internetowym, a nie prostym html, i nie masz tagów head, umieść ją w dowolnym miejscu, aby działała. Nie zapomnij zdefiniować zmiennej globalnej w tym pliku JScript, której wartością będzie treść lub identyfikator formularza jako ciąg. Po połączeniu pliku JScript ze stroną html lub formularzem internetowym możesz załadować zdarzenie treści formularza, ustawić wartość tej zmiennej na swój identyfikator treści lub formularza. Następnie w pliku JScript nie musisz już podawać dokumentowi identyfikatora treści lub formy jednej strony, po prostu nadaj mu wartość tej zmiennej. Możesz wywołać tę zmienną bodyId lub formId lub bodyOrFormId lub dowolną inną nazwę.
Powodzenia!