Önce başlık etiketlerini ekleyin :
<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>
zaten senaryonuz varsa etiketleriniz varsa, bu işlevleri yukarıya eklemeniz yeterlidir.
Sizin de vücudun veya formu ekleyerek etiketleri:
<input type="file" style="display:none" id="yourDesiredOrFavoriteNameForTheNewOpenFileDialogInstance"/>
HTML'nizin neresinde olursa olsun, tıpkı kodunuzda veya xaml'de nerede olursa olsun, ancak komut dosyanızda veya kodunuzda global değişken olarak adı öğenin kimliği olan yeni bir OpenFileDialog sınıfı örneği oluşturmuş olmanız gibidir. , sen yapamazsın eleman input type = "file" tanımlanmamış olanlar bunu küresel fonksiyonlar olduğundan, onun adını yazın ve sonra bir işlevi bir özellik okumak veya arayın. Bu işlevlere, dizge olarak OpenFileDialog örneğinin adı olan gizli girdi türü = "dosya" kimliğini vermeniz yeterlidir.
HTML'nizde açık dosya diyalog örnekleri oluştururken hayatınızı kolaylaştırmak için, bunu yapan bir işlev yapabilirsiniz:
function createAndAddNewOpenFileDialog(name) {
document.getElementById("yourBodyOrFormId").innerHtml += "<input type='file' style='display:none' id='" + name + "'/>"
}
ve açık dosya iletişim kutusunu kaldırmak isterseniz, aşağıdaki işlevi oluşturabilir ve kullanabilirsiniz:
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;
}
ancak açık dosya iletişim kutusunu kaldırmadan önce, aşağıdaki işlevi yaparak ve kullanarak var olduğundan emin olun:
function doesOpenFileDialogExist(name) {
return document.getElementById("yourBodyOrFormId").innerHtml.indexOf("<input type='file' style='display:none' id='" + name + "'/>") != -1
}
ve html'deki gövde veya form etiketlerinde dosya açma diyalogları oluşturmak ve eklemek istemiyorsanız , çünkü bu gizli input type = "file" s ekliyor, o zaman yukarıdaki create işlevini kullanarak bunu komut dosyasında yapabilirsiniz :
function yourBodyOrFormId_onload() {
createAndAddNewOpenFileDialog("openFileDialog1");
createAndAddNewOpenFileDialog("openFileDialog2");
createAndAddNewOpenFileDialog("openFileDialog3");
createAndAddNewOpenFileDialog("File Upload");
createAndAddNewOpenFileDialog("Image Upload");
createAndAddNewOpenFileDialog("bla");
//etc and rest of your code
}
Gövde veya form etiketlerinizin yakınına şunları eklediğinizden emin olun:
onload="yourBodyOrFormId_onload()"
Zaten yaptıysanız, yukarıdaki satırı yapmak zorunda değilsiniz.
İPUCU: Henüz sahip değilseniz, projenize veya web sitenize yeni JScript Dosyası ekleyebilir ve bu dosyada tüm açık dosya diyalog işlevlerini komut dosyası etiketlerinden ve html veya web form sayfasından uzağa koyabilir ve bunları bu JScript dosyasından html veya web formu sayfanıza ekleyin, ancak html veya web formu sayfasını elbette JScript dosyasına bağlamayı unutmayın. Bunu yalnızca JScript dosyasını html sayfanıza sürükleyerek yapabilirsiniz. kafaetiketleri. Sayfanız web formuysa ve basit html değilse ve head etiketleriniz yoksa, çalışabilmesi için herhangi bir yere koyun. Bu JScript Dosyasında, değeri sizin bedeniniz olacak veya dizge olarak id oluşturacak global değişken tanımlamayı unutmayın. JScript dosyasını html veya web formu sayfanıza bağladıktan sonra, form gövdenizin olayını yükleyebilir, bu değişkenin değerini bedeninize veya form kimliğinize ayarlayabilirsiniz. Daha sonra JScript Dosyasında, artık belgeye gövde kimliğini veya bir sayfanın formunu vermeniz gerekmez, ona sadece o değişkenin değerini verin. Bu değişken bodyId veya formId veya bodyOrFormId veya istediğiniz başka bir adı çağırabilirsiniz .
İyi şanslar dostum!