Primeiro adicione as tags head :
<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>
se você já tem script tags de , basta adicionar as funções acima.
Em suas tags de corpo ou formulário, adicionando:
<input type="file" style="display:none" id="yourDesiredOrFavoriteNameForTheNewOpenFileDialogInstance"/>
Não importa onde em seu html, é exatamente assim que você criou uma nova instância do tipo OpenFileDialog class como variável global , cujo nome é o id do elemento, não importa onde em seu código ou xaml, mas em seu script ou código você não pode digitar o nome dele e depois ler uma propriedade ou chamar uma função, porque existem funções globais que fazem aquelas que não estão definidas no elemento input type = "file". Você só precisa fornecer a essas funções o id do tipo de entrada oculto = "arquivo" que é o nome da instância OpenFileDialog como string.
Para facilitar sua vida na criação de instâncias de diálogos de arquivos abertos para o seu html, você pode criar uma função que o faça:
function createAndAddNewOpenFileDialog(name) {
document.getElementById("yourBodyOrFormId").innerHtml += "<input type='file' style='display:none' id='" + name + "'/>"
}
e se quiser remover a caixa de diálogo de arquivo aberto, você pode criar e usar a seguinte função:
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;
}
mas antes de remover a caixa de diálogo de arquivo aberto, verifique se ela existe criando e usando a seguinte função:
function doesOpenFileDialogExist(name) {
return document.getElementById("yourBodyOrFormId").innerHtml.indexOf("<input type='file' style='display:none' id='" + name + "'/>") != -1
}
e se você não quiser criar e adicionar as caixas de diálogo de arquivo aberto nas tags do corpo ou do formulário no html, porque isso está adicionando tipo de entrada oculto = "arquivo" s, então você pode fazer isso no script usando a função criar acima :
function yourBodyOrFormId_onload() {
createAndAddNewOpenFileDialog("openFileDialog1");
createAndAddNewOpenFileDialog("openFileDialog2");
createAndAddNewOpenFileDialog("openFileDialog3");
createAndAddNewOpenFileDialog("File Upload");
createAndAddNewOpenFileDialog("Image Upload");
createAndAddNewOpenFileDialog("bla");
//etc and rest of your code
}
Certifique-se de que próximo ao seu corpo ou tags de formulário, você adicionou:
onload="yourBodyOrFormId_onload()"
Você não precisa fazer esta linha acima, se você já fez.
DICA: você pode adicionar ao seu projeto ou site um novo arquivo JScript, se ainda não o fez, e neste arquivo você pode colocar todas as funções de diálogo de arquivo aberto longe das tags de script e da página html ou formulário da web e usar eles em seu html ou página de formulário da web a partir deste arquivo JScript, mas não se esqueça antes de vincular o html ou página de formulário da web ao arquivo JScript, é claro. Você pode fazer isso arrastando o arquivo JScript para a sua página html no cabeçalhoTag. Se a sua página for um formulário da web e não um html simples, e você não tiver tags head, coloque-a em qualquer lugar para que funcione. Não se esqueça de definir a variável global nesse arquivo JScript, cujo valor será seu corpo ou id de formulário como string. Depois de vincular o arquivo JScript ao seu html ou página de formulário da web, você pode carregar o evento de seu corpo de formulário, definir o valor dessa variável para seu corpo ou id de formulário. Então, no arquivo JScript, você não precisa mais dar ao documento o id do corpo ou forma de uma página, apenas dê a ele o valor daquela variável. Você pode chamar essa variável de bodyId ou formId ou bodyOrFormId ou qualquer outro nome que desejar.
Boa sorte rapaz!