Multiple file select werkt in Edge maar niet in IE11.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nkamp Kamp van de

nkamp Kamp van de

19/10/2018 12:02:07
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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();"/>
    ...


--

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)
PHP script in nieuw venster Selecteer het PHP script
1
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
Gewijzigd op 19/10/2018 12:44:02 door Nkamp Kamp van de
 
PHP hulp

PHP hulp

19/04/2024 01:22:13
 
- Ariën  -
Beheerder

- Ariën -

19/10/2018 12:04:54
Quote Anchor link
Gelukkig hebben we code-tags ;)
 
Nkamp Kamp van de

nkamp Kamp van de

19/10/2018 12:56:17
Quote Anchor link
Je hebt helemaal gelijk, Ariën. Ik zie het nu ook. Ik heb het bericht aangemaakt en ben gaan wandelen met collega's.

Maar ik weet dat je php met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php ?>
kunt insluiten, html met [HTML] [/HTML] en javascript met <script> </script>. Dit is misschien makkelijk gedacht, ik heb het nu vervangen met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
.

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.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/10/2018 14:48:35
Quote Anchor link
Zet om alle codefragmenten gewoon [code][/code].
 
Nkamp Kamp van de

nkamp Kamp van de

19/10/2018 14:53:17
Quote Anchor link
Ik ben eruit denk ik:
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.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/10/2018 15:00:18
Quote Anchor link
Je hebt nu wel een aantal "lagen" om je uploads heen zitten: allerlei zut in je HTML en JavaScript. Ik zou e.e.a. strippen om te kijken waar het probleem nu werkelijk zit. Heb je bijvoorbeeld al een "kaal" uploadformulier geprobeerd?
Quote:
en uploaden naar een directory in mijn htdocs

Ik hoop dat je buiten/boven htdocs bedoelt.
 
Nkamp Kamp van de

nkamp Kamp van de

19/10/2018 15:32:30
Quote Anchor link
Dat is wat ik vanmiddag al gedaan heb.

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.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/10/2018 15:53:41
Quote Anchor link
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?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.