jQuery Ajax FormData() feltöltése xhr-rel.
Feladat: 1 db fájl feltöltése FormData()-ként úgy, hogy közben kijelezze a feltöltés pillanatnyi értékét. MySQL táblában az adatok lementése: a feltöltő neve, a feltöltött *.zip/*.rar fájl tartalma, a fájl neve.
Eddig jutottam: http://users.atw.hu/bujocska/
A javascript részt megtaláljátok a honlapon.
Probléma: amikor én próbálok feltölteni egy fájlt, mindig sikerül, viszont ha más, neki megáll 100%-nál és nem történik semmi: nem rak be új rekordot a táblába, nem tölti fel a fájlt a szerverre. Fogalmam sincs miért van ez, esetleg a fájl neve miatt.
Fájl/mappa szerkezet (design elemeket leszámítva):
- /index.php
- /jsHandler.php
- js/script.js
- js/jquery-ui-1.9.2.custom.min.js
- /uploads (mappa - chmod 777)
- /tmp (az atw.hu miatt kell - chmod 777)Előre is köszönöm a segítséget.
■ Eddig jutottam: http://users.atw.hu/bujocska/
A javascript részt megtaláljátok a honlapon.
Probléma: amikor én próbálok feltölteni egy fájlt, mindig sikerül, viszont ha más, neki megáll 100%-nál és nem történik semmi: nem rak be új rekordot a táblába, nem tölti fel a fájlt a szerverre. Fogalmam sincs miért van ez, esetleg a fájl neve miatt.
Fájl/mappa szerkezet (design elemeket leszámítva):
- /index.php
- /jsHandler.php
- js/script.js
- js/jquery-ui-1.9.2.custom.min.js
- /uploads (mappa - chmod 777)
- /tmp (az atw.hu miatt kell - chmod 777)
<?php
ob_start();
$mysql["connection"]=mysql_connect("host","felhasználónév","jelszó") or die("Hiba a MySQL szerverhez való kapcsolódás közben. Hibaüzenet: ".mysql_error());
$mysql["selection"]=mysql_select_db("db") or die("Hiba a MySQL adatbázis kiválasztása közben. Hibaüzenet: ".mysql_error());
foreach($_POST as $k=>$v)
$_POST[$k]=mysql_real_escape_string($v);
$_FILES["upload_file"]["name"]=preg_replace("/[^a-zA-Z0-9\.]/","_",mysql_real_escape_string($_FILES["upload_file"]["name"]));
$maxsize=104857600; //100 MB
$minsize=5242880; //5 MB
if($_FILES["upload_file"]["error"]==4){
if(isset($_GET["nojs"]))header("Location:index.php?result=0"); //hibák szeparálása az index.php-ben, semmi különös. Arra az esetre ha a felhasználó javascript nélkül böngészné az oldalt
}elseif(strlen($_POST["name"])<3){
if(isset($_GET["nojs"]))header("Location:index.php?result=1");
}elseif(strlen($_POST["name"])>30){
if(isset($_GET["nojs"]))header("Location:index.php?result=2");
}elseif(strlen($_POST["maps"])<10){
if(isset($_GET["nojs"]))header("Location:index.php?result=3");
}elseif(strlen($_POST["maps"])>255){
if(isset($_GET["nojs"]))header("Location:index.php?result=4");
}elseif($_FILES["upload_file"]["size"]>=$maxsize){
if(isset($_GET["nojs"]))header("Location:index.php?result=5");
}elseif($_FILES["upload_file"]["size"]<=$minsize){
if(isset($_GET["nojs"]))header("Location:index.php?result=6");
}elseif((strtolower(pathinfo($_FILES["upload_file"]["name"],PATHINFO_EXTENSION))!="zip") && (strtolower(pathinfo($_FILES["upload_file"]["name"],PATHINFO_EXTENSION))!="rar")){
if(isset($_GET["nojs"]))header("Location:index.php?result=7");
}elseif(move_uploaded_file($_FILES["upload_file"]["tmp_name"],"uploads/".$_FILES["upload_file"]["name"])){
$dbquery=mysql_query("INSERT INTO uploads (name,maps,fileName,timestamp) VALUES ('$_POST[name]','$_POST[maps]','".$_FILES["upload_file"]["name"]."','".time()."')") or die(mysql_error());
if(isset($_GET["nojs"]))header("Location:index.php?result=8");
echo 8; //visszatérési érték a script.js "success:" részéhez
}else{
if(isset($_GET["nojs"]))header("Location:index.php?result=9");
echo 9;
}
?>
Opera (12.12) alatt nem megy
Köszönöm
http://bujocska.tk