আমি একই সমস্যার মধ্যে দৌড়েছি, আমি তার উপরের সমাধানগুলির মাধ্যমে লাল হয়েছি তবে কী ঘটছে তা তারা কোনও ভাল ব্যাখ্যা পায়নি।
এই সমাধানটি আমি https://jsfiddle.net/r2wjp6u8/ লিখেছি ডোম ট্রিতে অনেক পরিবর্তন করে না, এটি কেবল ইনপুট ক্ষেত্রের মান পরিবর্তন করে। পারফরম্যান্স দিক থেকে এটি আরও ভাল হওয়া উচিত।
ফিডল এর লিঙ্ক: https://jsfiddle.net/r2wjp6u8/
<button id="btnSelectFile">Upload</button>
<!-- Not displaying the Inputfield because the design changes on each browser -->
<input type="file" id="fileInput" style="display: none;">
<p>
Current File: <span id="currentFile"></span>
</p>
<hr>
<div class="log"></div>
<script>
// Get Logging Element
var log = document.querySelector('.log');
// Load the file input element.
var inputElement = document.getElementById('fileInput');
inputElement.addEventListener('change', currentFile);
// Add Click behavior to button
document.getElementById('btnSelectFile').addEventListener('click', selectFile);
function selectFile() {
if (inputElement.files[0]) {
// Check how manyf iles are selected and display filename
log.innerHTML += '<p>Total files: ' + inputElement.files.length + '</p>'
// Reset the Input Field
log.innerHTML += '<p>Removing file: ' + inputElement.files[0].name + '</p>'
inputElement.value = '';
// Check how manyf iles are selected and display filename
log.innerHTML += '<p>Total files: ' + inputElement.files.length + '</p>'
log.innerHTML += '<hr>'
}
// Once we have a clean slide, open fiel select dialog.
inputElement.click();
};
function currentFile() {
// If Input Element has a file
if (inputElement.files[0]) {
document.getElementById('currentFile').innerHTML = inputElement.files[0].name;
}
}
</scrip>