hmmmm ich denke, es gibt eine sehr effiziente Möglichkeit, es speziell für Leute zu machen, die alle Browser und nicht nur FormData ansprechen möchten unterstützte Browser
die Idee, IFRAME auf der Seite versteckt zu haben und eine normale Übermittlung für das Beispiel "From inside IFrame" vorzunehmen
<FORM action='save_upload.php' method=post
enctype='multipart/form-data' target=hidden_upload>
<DIV><input
type=file name='upload_scn' class=file_upload></DIV>
<INPUT
type=submit name=submit value=Upload /> <IFRAME id=hidden_upload
name=hidden_upload src='' onLoad='uploadDone("hidden_upload")'
style='width:0;height:0;border:0px solid #fff'></IFRAME>
</FORM>
Am wichtigsten ist es, ein Ziel der Form als versteckte Iframe- ID oder als Name
und Enctype für mehrteilige / Formulardaten festzulegen , damit Fotos akzeptiert werden können
Javascript Seite
function getFrameByName(name) {
for (var i = 0; i < frames.length; i++)
if (frames[i].name == name)
return frames[i];
return null;
}
function uploadDone(name) {
var frame = getFrameByName(name);
if (frame) {
ret = frame.document.getElementsByTagName("body")[0].innerHTML;
if (ret.length) {
var json = JSON.parse(ret);
}
}
}
serverseitiges Beispiel PHP
<?php
$target_filepath = "/tmp/" . basename($_FILES['upload_scn']['name']);
if (move_uploaded_file($_FILES['upload_scn']['tmp_name'], $target_filepath)) {
$result = ....
}
echo json_encode($result);
?>