Multiple file select werkt in Edge maar niet in IE11.
Ik heb file upload (window.open()) gemaakt, wat werkt op de XAMPP - Windows/localhost omgeving ("development"). Hiermee kan ik meerdere bestanden tegelijk selecteren en uploaden naar een directory in mijn htdocs. Zowel met IE11 als met Edge.
Vervolgens heb ik deze code op de test omgeving geplaatst wat een Linux server is. Ik ben mij ervan bewust dat daar 'oplosbare' verschillen tussen kunnen zitten.
Ik open vanaf mijn windows client de webpages op de Linux server. Dan werkt het nog steeds in Edge maar niet in meer IE 11.
Als eerste ik kan dan niet meerdere files tegelijk selecteren! Wel één.
Ik heb enkele zaken aangepast waardoor het in IE11 beter werkt:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<head>
<!-- de meta tag heb ik als volgt aangepast waardoor ik nu wel n file kan uploaden en op de locatie van de server plaatsen. Zonder dit werkte het ook niet voor n file. -->
<meta http-equiv="x-ua-compatible" content="IE=edge" >
<base target="_self">
</head>
<body>
...
<!-- Dit is mijn HTML file upload -->
<input type="file" id="file" name="files[]" multiple="multiple" accept=".filter" onChange="makeFileList();"/>
...
<!-- de meta tag heb ik als volgt aangepast waardoor ik nu wel n file kan uploaden en op de locatie van de server plaatsen. Zonder dit werkte het ook niet voor n file. -->
<meta http-equiv="x-ua-compatible" content="IE=edge" >
<base target="_self">
</head>
<body>
...
<!-- Dit is mijn HTML file upload -->
<input type="file" id="file" name="files[]" multiple="multiple" accept=".filter" onChange="makeFileList();"/>
...
--
Het volgende probleem doet zich dan ook nog voor:
wanneer de bestanden geselecteerd zijn, laat ik aan de gebruiker zien welke bestanden hij geselecteerd heeft. Echter dit werkt in Edge maar niet in IE11.
Ik krijg de volgende foutmelding "Kan de eigenschap length van een niet-gedefinieerde verwijzing of een verwijzing naar een lege waarde niet ophalen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
function makeFileList() {
alert ('makeFileList()'); //Voor test om te zien of de functie wel aangeroepen en dat wordt het
var input = document.getElementById('file');
for (var i = 0; i < input.files.length; i++) { [b]//dit is wat de foutmelding genereert[/b]
...
</script>
[/CODE]
De Apache/PHP versie op mijn localhost en de Linux server, zijn hetzelfde.
Tenslotte nog een puntje. Ik open de popup window in javascript met window.open(). Ik wil het eigenlijk met showModalDialog. Maar dit werkt niet meer in Edge? Bestaat hier een alternatief voor?
Nico
function makeFileList() {
alert ('makeFileList()'); //Voor test om te zien of de functie wel aangeroepen en dat wordt het
var input = document.getElementById('file');
for (var i = 0; i < input.files.length; i++) { [b]//dit is wat de foutmelding genereert[/b]
...
</script>
[/CODE]
De Apache/PHP versie op mijn localhost en de Linux server, zijn hetzelfde.
Tenslotte nog een puntje. Ik open de popup window in javascript met window.open(). Ik wil het eigenlijk met showModalDialog. Maar dit werkt niet meer in Edge? Bestaat hier een alternatief voor?
Nico
Gewijzigd op 19/10/2018 12:44:02 door Nkamp Kamp van de
Gelukkig hebben we code-tags ;)
Maar ik weet dat je php met kunt insluiten, html met [HTML] [/HTML] en javascript met <script> </script>. Dit is misschien makkelijk gedacht, ik heb het nu vervangen met .
Misschien geen goeie vraag maar waarom staat dit niet of deze niet in de editor balk, zoals bij andere forums?
Ik heb als een forum help gezien/gevonden maar nu kan ik hem even niet vinden. Ook als ik op code tags of forum help krijg ik geen resultaat.
Zet om alle codefragmenten gewoon [code][/code].
Wanneer ik de browser emulatie anders instel werkt het:
Document modus: 10 of 11. (niet lager!, hier stond deze meen ik op 7 standaard.)
Browserprofiel: Bureaublad (ipv. Enterprise)
Tekenreeks van de gebruikersagent: Internet Explorer 11 (standaard) of Microsoft Edge
Nu wil ik nog proberen in te stellen met de meta tag of is dit niet mogelijk?
Dit is voor 'intern' gebruik.
Quote:
en uploaden naar een directory in mijn htdocs
Ik hoop dat je buiten/boven htdocs bedoelt.
Maar ik weet zeker nu dat het in document modus + browser profiel zit en als ik dan met dezelfde php bestand aanmeld bij mijn localhost dan is deze anders ingesteld dan als ik via die linux server ga.
Maar als ik deze twee via "F12 ontwikkeltools" instel op 10 en bureaublad, dan werkt de multi select, mijn javascript werkt.
Ik begrijp nu ook na enig googlen, dat dit niet eenvoudig of niet is in te stellen via een meta tag.
Quote:
Ik open vanaf mijn windows client de webpages op de Linux server. Dan werkt het nog steeds in Edge maar niet in meer IE 11.
Ik zie eerlijk gezegd niet hoe de webserver hier invloed op heeft? Het niet kunnen selecteren van meerdere bestanden lijkt mij een browser aangelegenheid. En als het in het ene geval wel werkt en in het andere geval niet, dan breekt mogelijk je JavaScript code ergens ofzo? Heb je alle cache leeggegooid? Staan alle CSS/JS bestanden whatever op de goede plaats? Krijg je in je console geen JavaScript errors? Als de HTML/JS verder hetzelfde is zou dit toch geen biet moeten uitmaken?