ugrás a tartalomhoz

ID alapján adott személy keresése és képfeltöltés

Anonymous · 2006. Szep. 19. (K), 14.15
Üdv.

Az a nagy bajom, hogy szeretnék egy olyan scriptet, ami a id alapján megkeresi az adott személyt, majd a kép mezőjébe beilleszti annak a képnek az MD5-ös kódolású képfáljját, amit a formmal feltöltünk és átnevezve kerül fel a szerverre.
<"JAVASCRIPT  LANGUAGE="JavaScript">
<!-- 
function Checkkepnev(obj)
{
	var x = obj.value;
	var n = x.length;
	if (n == 0) return true;
	var s = x.substr(n-4,4);
	s = s.toUpperCase();
	if (s == ".JPG") return true;
	window.alert("Kép típusa JPG lehet!");
	return false;
}

function pushbutton(f)
{
	
	if (!Checkkepnev(f.kepfajl)) return;
	f.submit();
}


//-->
</SCRIPT>
<BODY CLASS="sotet" bgcolor="white" text="black" link="blue" vlink="purple" alink="red">

<p><FORM ENCTYPE="multipart/form-data" ACTION="feltolt.php" METHOD=POST name="forms">
                <p><input type=hidden name="mit" value="<?= $mit?>">    
    <b>Id:</b> <input name="eletkor" size=3 value="<?= $id?>"></p>
    <p><input type="file" Name="kepfajl"><input type=hidden Name="MAX_FILE_SIZE" value="1000000"><input type="submit" value="feltölt"></p>
            </FORM>  


ez a feltolt.php részletei
<?
ob_start();
?>

<? include("dbconn.php") ?>

/* 
<?
echo "<B>Fájl neve az ideiglenes mappában:</B>".$kepfajl."<BR>";
echo "<B>Fálj eredeti neve:</B>".$kepfajl_name."<BR>";;
echo "<B>Fálj típusa:</B>".$kepfajl_type."<BR>";;
echo "<B>Fálj mérete:</B>".$kepfajl_size."<BR>";;


if (($kepfajl<>"none") && ($kepfajl_size < $MAX_FILE_SIZE) && (eregi("\.(jpg|gif)$",$kepfajl_name)) ) 
	{
        	if (!@copy("$kepfajl","upload/$kepfajl_name")) 
 	 		{ echo  "<BR><FONT COLOR=red SIZE=5><B>
			Másolás sikertelen, nincs megfelelô elérési jog!<BR></B></FONT>"; 
			}
 			else
			{ echo "<BR><FONT COLOR=red SIZE=5><B>Sikeres másolás<BR></B></FONT>";  
			}

	}
	else 
	{ 
		echo "<BR><FONT COLOR=red SIZE=5><B>Másolás nem történt!<BR> 
		</B></FONT>(nem adott meg fájlt, túl nagy fájlt jelölt meg,
		 vagy a fájltípus nem megfelelô!)<BR>"; 
	}

?>

*/

<?

$pls "UPDATE tabla SET kep='$kep' WHERE id=$mit";

mysql_query($pls);

mysql_close($db);

?>

<?
ob_end_flush();
?>
Ebbe kellene az upload, ami az eredeti fájlnevet átkódolja MD5-re (kiterj. nem) és bemásolja az /upload könyvtárba, majd az adatbázisban az id-hez tartozó kép mezejébe beilleszti az elérési utat (http://www.asda.hu/upload/asdasda.jpg

Ha karakterhiba felmerül, az a gépelés eredménye... tudom, hogy így nem jó, de szeretném, ha valaki segítene.

Köszönöm
 
1

hajrá

kisstoth · 2006. Szep. 19. (K), 15.36
Csak drukkolni tudok, hajrá!

MD5 használata: http://hu.php.net/md5
Fájlfeltöltés: http://hu.php.net/manual/hu/features.file-upload.php
2

ötletek

breakline · 2006. Szep. 19. (K), 17.40
kiterjesztést magkaphatod, ha a filnevét felbontod a "." karaktereknél, és kiveszed az utolsó tagot.

Egyébként, bár nem erre lett kitalálva, ilyenkor használhatod akár a base64_encode, base64_decode fv.-eket md5 helyett, így ha kelleni fog később, vissza tudod fejteni, mi volt az eredeti filenév.

Az adatbázisban pedig csak a file nevét tárold, és esetleg a könyvtárat, nem kell a teljes elérési út, azt hozzá tudod a php fileban tenni (könyvtár is csak akkor kell, ha a képek különböző könyvtárakba kerülnek)
3

:)

Anonymous · 2006. Szep. 19. (K), 18.30
Köszönöm, ez mind remek, de nekem az összefűzéssel vannak gondjaim, a parancsokat még-még ki tudom bogozni innen-onnan, de összerakni már nem megy.. :(
Hova kell (" ' ` .=/!}{[])? Ezek miatt...

Megvan a form. Két mező. Az egyik az id, a másik a fájl.
Küldöm a feldolgozo.php-nek, az először csat. a db-hez, utána feltölti a fájlt a szerverre, utána átnevezi, majd a fájlnevet beilleszti a mezőbe a megadott id-hez. Ez így nem is tűnik bonyolultnak.

Összeraktam, de még kipróbálni sem tudom, mert logikailag nincs rendben szerintem. Lehet, hogy kicsit elszálltam magamtól, hogy az elsők között próbálkozok ilyenekkel, de már nagyon sokat tanultam (tőletek) és ez egy igazán zsíros falat... :)))

Nos, nézem a manualt is term., de azon nem tudok kiigazodni...kevés a magyarázat... :(