Спочатку додайте в голову теги:
<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>
якщо у вас вже є теги сценарію , просто додайте ці функції вище.
У вашому тілі чи формі додайте теги:
<input type="file" style="display:none" id="yourDesiredOrFavoriteNameForTheNewOpenFileDialogInstance"/>
Незалежно від того, де у вашому html - це просто так, ви створили новий екземпляр типу OpenFileDialog як глобальну змінну, ім'я якого - ідентифікатор елемента, незалежно від того, де у вашому коді чи xaml, а у вашому скрипті чи коді , ви не можете ввести його ім'я, а потім прочитати властивість або викликати функцію, оскільки є глобальні функції, які виконують ті, які не визначені в елементі input type = "file". Ви просто повинні надати цим функціям ідентифікатор прихованого типу вводу = "файл", який є ім'ям екземпляра OpenFileDialog як рядок.
Щоб полегшити своє життя при створенні екземплярів відкритих діалогових файлів до ваших html, ви можете зробити функцію, яка це виконує:
function createAndAddNewOpenFileDialog(name) {
document.getElementById("yourBodyOrFormId").innerHtml += "<input type='file' style='display:none' id='" + name + "'/>"
}
і якщо ви хочете видалити діалогове вікно відкритого файлу, ви можете зробити та скористатись такою функцією:
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;
}
але перш ніж видалити діалогове вікно відкритого файлу, переконайтесь, що воно існує, виконавши та скориставшись такою функцією:
function doesOpenFileDialogExist(name) {
return document.getElementById("yourBodyOrFormId").innerHtml.indexOf("<input type='file' style='display:none' id='" + name + "'/>") != -1
}
і якщо ви не хочете створювати та додавати відкриті діалогові файли в тілі або теги форм у html, оскільки це додавання прихованого типу вводу = "файл", ви можете це зробити у скрипті за допомогою функції створення вище :
function yourBodyOrFormId_onload() {
createAndAddNewOpenFileDialog("openFileDialog1");
createAndAddNewOpenFileDialog("openFileDialog2");
createAndAddNewOpenFileDialog("openFileDialog3");
createAndAddNewOpenFileDialog("File Upload");
createAndAddNewOpenFileDialog("Image Upload");
createAndAddNewOpenFileDialog("bla");
//etc and rest of your code
}
Переконайтеся, що біля вашого тіла чи тегів форми ви додали:
onload="yourBodyOrFormId_onload()"
Вам не доведеться робити цей рядок вище, якщо ви вже робили це.
ПОРАДА: Ви можете додати до свого проекту чи веб-сайту новий файл JScript, якщо його ще немає, і в цьому файлі ви можете помістити всі діалогові функції відкритого файлу подалі від тегів сценарію та html-сторінки або сторінки веб-форми, і використовувати їх на вашій HTML-сторінці чи сторінці веб-форми з цього файлу JScript, але не забудьте попередньо пов’язати сторінку HTML або веб-форми з файлом JScript. Це можна зробити, просто перетягнувши файл JScript на вашу html-сторінку в головітеги. Якщо ваша сторінка є веб-формою та не простою HTML-адресою, а у вас немає тегів заголовка, то покладіть її куди завгодно, щоб вона могла працювати. Не забудьте визначити глобальну змінну у тому файлі JScript, значенням якого буде ваше тіло або ідентифікатор форми як рядок. Після того як ви зв’язали файл JScript зі своєю html-сторінкою або веб-сторінкою форми, ви можете завантажити подія свого тіла форми, встановити значення цієї змінної на ваше тіло або ідентифікатор форми. Тоді у файлі JScript більше не потрібно надавати документу ідентифікатор тіла або форми однієї сторінки, просто надайте йому значення цієї змінної. Ви можете викликати цю змінну bodyId або formId або bodyOrFormId або будь-яке інше ім'я.
Удачі людино!