So Im eine App mit Elektronen zu bauen versucht, das Programm ist ziemlich einfach herunterladen, sollte der Benutzer ein paar Bilder hochladen, sie eine Taste drücken, ziehe ich sie in ein <canvas>
Element, und sie sollten sein Lage, es zu downloaden, ist das Problem, dass im mit, dass, wenn ich versuche, eine herunterladbare Taste zu machen, wird ein Sicherheitsfehler geworfen, ich tat etwas Forschung und finden sie heraus, dass es eine Funktion von HTML5 ist, ist die Meinung ist, dass ich nicht hinzufügen die crossOrigin = 'Anonymous', weil der Benutzer das Bild von seinem eigenen Computer laden wird, so ist meine Frage ...Kann nicht Leinwand Inhalt
a) - gibt es eine Möglichkeit, "das System zu betrügen" und in der Lage sein, die Inhalt der Leinwand ?,
b) - Wenn (a) nicht möglich ist ... gibt es eine Alternative, die ähnlich wie ein Canvas-Element funktionieren könnte?
Ich benutze bereits FileReader(), um das Bild zu erhalten, das der Benutzer ausgewählt hat, und ich zeichne das bereits in den Canvas, und es sieht gut aus, das Problem, das ich habe, ist, dass ich den Inhalt nicht herunterladen kann das habe ich für diesen Sicherheitsfehler erstellt. Die .toDataURL kann nicht aufgerufen werden, da dies der Fehler ist.
Der Code, um die Bilder von den Eingängen zu lesen:
function handleBox1(evt) {
var files = evt.target.files; // FileList object
for (var i = 0, f; f = files[i]; i++) {
// Only process image files.
if (!f.type.match('image.*')) {
continue;
}
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
$('#imgBox1').attr("src",e.target.result);
};
})(f);
// Read in the image file as a data URL.
reader.readAsDataURL(f);
}
}
dies ist eine einfache Funktion, um zu sehen, ob ich die URL von der Leinwand bekommen konnte:
descargar = function(){
var w=window.open('about:blank','image from canvas');
w.document.write("<img src='"+ totem.toDataURL("image/png")+ "' alt='from canvas'/>");
}
können Sie Ihren Code und Fehler posten? Ein Ja-Kreuz-Ursprung bezieht sich überhaupt nicht auf die Benutzer-Uploads. Es wird aufgrund von Websites Dritter oder Links verursacht. –
"... das System betrügen": Nein, die Sicherheitsanforderungen erfüllen: Ja. Wenn der Benutzer über einen modernen Browser verfügt, können Sie mithilfe von FileReader lokale Bilder abrufen, ohne Sicherheitseinschränkungen auszulösen. Der Schlüssel ist, dass der Benutzer explizit die gewünschte Datei auswählen muss und dadurch explizit die Verantwortung für das Hochladen eines domänenübergreifenden Bildes übernehmen muss. – markE
@markE Die verknüpfte Frage erscheint nicht, um mehrere Bilder auf ein einziges '