Frage

Ich habe ein HTML-Formular ( Upload.htm ) mit einem HTML-Datei-Upload-Steuerelement in der es.

<form id="frmupload" name="upload" enctype="multipart/form-data" action="uploadhandler.ashx" method="post">
    <input id="uploader" name="uploadctrl" type="file"/>
</form>

Es gibt auch eine JavaScript-Methode in der oben genannten Seite, die wie geht:

function performUpload(){
    document.getElementById('frmupload').submit();
}

ich diese innerhalb einer Seite aufrufen ( uploadpage.htm ) innerhalb einer iframe:

<iframe id="docframe" src="upload.htm" style="display:none"></iframe>

Ich versuche, um die Anweisung auszuführen unten gezeigt von dem uploadpage.htm :

var i = document.getElementById('docframe');
i.contentWindow.performUpload();

Ich erhalte eine Fehlermeldung sagen, Zugriff verweigert , und mein Debugger stoppt beim ersten JavaScript-Funktion habe ich gezeigt. Beide Dateien sind in der gleichen Position im Web-Projekt. Sie haben den gleichen Domain-Namen zu. Warum erhalte ich diesen Fehler dann?

Natürlich, früher, ich konnte die Seite schreiben: wenn ich nicht das name Attribut für das HTML-Upload-Steuerelement festgelegt habe. Aber nachdem ich den Namen Attribut in HTML-Markup festgelegt, ich diese seltsamen Fehler. Warum habe ich das erste Mal nicht bekommen?

einen Blick @ dieser Beitrag Hat ->

Andere Tipps

Traditionell Zugang JavaScript in HTML input type="file" ist für Sicherheitsbedenken stark eingeschränkt. AFAIK, Sie können die folgenden mit JS auf einem Datei-Uploader Element nicht tun:

  1. Sie können nicht den „Wert“ des Elements lesen, da es den Dateinamen enthält.
  2. Sie können das Dateiauswahlmenü über JS anwerfen.
  3. Sie können die Datei Uploader Kontrolle über JS nicht Feuer einreichen.

All dies ist an Ort und Stelle, um böswillige Angriffe zu verhindern, wie Sie Ihre Dateien im Hintergrund über JS zu stehlen. Ich habe nicht mit einem input type="file" Elemente in einer Weile gespielt, aber meine beste Vermutung ist, werden Sie ähnliche Probleme treffen (wenn nicht alle) in anderen Browsern als auch.

Ihre beste Wette ist eine Flash-basierte Lösung oder vielleicht einige neue HTML5-Kontrolle.

Auch hier ist eine offizielle Referenz auf dem Gegenstand:

http://msdn.microsoft. com / en-us / library / ms535263 (v = VS.85) aspx

Überprüfen „Community-Inhalt“ den ganzen Weg auf der Unterseite der obigen Seite.

In beiden HTML-Dateien - die, die in dem Rahmen und eine andere ist, die den Rahmen enthält -. Versuchen Sie, document.domain='example.com' wo ‚example.com‘ ist Ihr Domain-Name

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top