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