PHP / AJAX feltöltés
Sziasztok!
most kezdtem el az AJAX tanulását és beleütköztem egy kis problémába. Azt szeretném csinálni, hogy ha a felhasználó rákattint a feltöltés gombra, akkor az AJAX futtassa le az upload.php fájlt és miután az feltöltötte a fájlt, akkor írja ki, hogy feltöltve. Egyszerüen nem boldogulok vele. Eddig jutottam:
űrlap:az openfile('upload.php') erre hivatkozik:és az upload.php-ben át kéne venni valahogy, egy tutorialban így csinálták:a gond az, hogy az &adat nem kap értéket, másrészt meg nem tudom, hogyan építsem be ide:segítségeteket előre is köszönöm!
■ most kezdtem el az AJAX tanulását és beleütköztem egy kis problémába. Azt szeretném csinálni, hogy ha a felhasználó rákattint a feltöltés gombra, akkor az AJAX futtassa le az upload.php fájlt és miután az feltöltötte a fájlt, akkor írja ki, hogy feltöltve. Egyszerüen nem boldogulok vele. Eddig jutottam:
űrlap:
<form method="POST" action="javascript:openfile('upload.php');" enctype="multipart/form-data" onsubmit="return ExtensionsOkay(this);">
<table align="center">
<tr>
<td align="center"><b>FELTÖLTÉS</b></td>
</tr>
<tr>
<td align="center"><input type="file" name="image"></td>
</tr>
<tr>
<td align="left"><input type="Submit" name="Submit" value=" FELTÖLT "></td>
</tr>
</table>
</form>
<p><span id="valasz"></span></p>
function getXmlHttpRequestObject() {
var XMLHttp = null;
if (window.XMLHttpRequest) {
try {
XMLHttp = new XMLHttpRequest();
} catch (e) { }
} else if (window.ActiveXObject) {
try {
XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) { }
}
}
return XMLHttp;
}
var http = getXmlHttpRequestObject();
function openfile(path) {
http.open('post', path, true);
http.onreadystatechange = handleOpen;
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http.send(document.getElementById("image").value);
}
function handleOpen() {
if (http.readyState == 4) {
var response = http.responseText;
document.getElementById('valasz').innerHTML = "kész!";
}
}
$posted = &$_POST;
$adat = $posted["image"];
$userfile_name = $_FILES['image']['name'];
$userfile_tmp = $_FILES['image']['tmp_name'];
$userfile_size = $_FILES['image']['size'];
$userfile_type = $_FILES['image']['type'];
még valami...
Nem fog menni
Ezek után tüntesd el az iframet (vedd ki a DOM fából), különben nem fog működni a back gomb. Arra is figyelj, hogy az iframe eltűntetése legyen az utolsó, különben Operában megszűnik a függvény futása. :)
nem lehet? pedig...
ezért gondoltam azt, hogy ez is megvalósítható lenne ajax-al, hiszen a feltöltést a php végezné, csak valahogy át kéne postolnom ajax-al az upload.php-ba az adatokat és beleépítenem ebbe:
Nem megy