aktivieren Ich habe eine Web-Anwendung in asp.net entwickelt, gibt es eine Seite in diesem Projekt, der Benutzer sollte eine Datei im Bildformat (jpeg, jpg, bmp, ...) und wählen Ich will Vorschaubild auf der Seite, aber ich will Datei nicht zum Server posten Ich möchte es in Client behandeln Ich habe es mit Java-Skripte Funktionen über Datei-API getan, aber es funktioniert nur in IE9, aber die meisten Kunden verwenden IE8 Der Grund ist, dass IE8 Datei API nicht unterstützt gibt es eine Möglichkeit, IE8-Upgrade oder einige Patches im Code hinter zu machen Ich überprüfe, ob der Browser IE ist und nicht unterstützen Datei-API Aufruf eine Funktion, die automatisch IE8 auf IE9 aktualisiert.
Wie JavaScript JavaScript-Datei API in IE8
Ich möchte den Benutzer nicht bitten, es in der Nachricht zu tun, ich möchte es programmgesteuert tun !!
auch wenn es möglich ist, einen speziellen Patch zu installieren, der für die Datei API erforderlich ist, weil Kunden dachten, dass es ein Fehler in meiner Anwendung ist und ihr Computerwissen niedrig ist was soll ich damit machen?
Ich benutze auch Async File Upload Ajax Control Aber es post die Datei auf den Server irgendwie mit Ajax-Lösung und HTTP-Handler, aber Java-Skripte machen alles im Client-Browser !!!
folgende Skript überprüft der Browser-API oder nicht
<script>
if (window.File && window.FileReader && window.FileList && window.Blob)
document.write("<b>File API supported.</b>");
else
document.write('<i>File API not supported by this browser.</i>');
</script>
folgenden Skripten die Lese- und Load Image
function readfile(e1)
{
var filename = e1.target.files[0];
var fr = new FileReader();
fr.onload = readerHandler;
fr.readAsText(filename);
}
HTML-Code unterstützt:
<input type="file" id="getimage">
<fieldset><legend>Your image here</legend>
<div id="imgstore"></div>
</fieldset>
JavaScript-Code:
<script>
function imageHandler(e2)
{
var store = document.getElementById('imgstore');
store.innerHTML='<img src="' + e2.target.result +'">';
}
function loadimage(e1)
{
var filename = e1.target.files[0];
var fr = new FileReader();
fr.onload = imageHandler;
fr.readAsDataURL(filename);
}
window.onload=function()
{
var x = document.getElementById("filebrowsed");
x.addEventListener('change', readfile, false);
var y = document.getElementById("getimage");
y.addEventListener('change', loadimage, false);
}
</script>
vielen Dank tpeczek ich es prüfen wird out, Polyfill Funktion Flash-i sollte ausgeführt werden muss, so fragen Benutzer Flash herunterladen und installieren, und ich will nicht, Benutzer fragen, zu tun Irgendeine Sache, weil Benutzer IE9 irgendwie in der Software installieren kann, wenn Entwickler einen Fehler sehen, veröffentlichen sie einen Flecken oder ein Einsteck, der Fehler korrigiert, Sie wissen, dass ich eine DLL-Akte im Forscherverzeichnis kopieren und einige Änderungen zum Entdecker über irgendeine Art vornehmen möchte Ich denke, es gibt eine Möglichkeit, dass ich eine Datei hochladen kann und prüfen, ob der Browser die API-Funktion Download-DLL-Datei nicht unterstützt und einige Operationen wie kopieren zu system32 – saeed
Mein großes Problem ist, dass IE8 File API nicht unterstützt Jede Möglichkeit, sogar eine Batch-Datei, um etwas zu tun – saeed
@saeed Die einzige Möglichkeit, Datei-API im IE unterstützt zu bekommen, ist IE9 + zu haben. Sie können auch keine DLL ändern oder Software von der Webanwendung installieren - eine solche Möglichkeit wäre eine große Sicherheitsverletzung (denken Sie daran, dass Sie sich in einer Sandbox befinden). – tpeczek