webForumDet fria alternativet

Bild uppladdning

PHP

17 svar · 746 visningar · startad av giik

Medlem sedan mars 2002112 inlägg
Frågan#1

Jag har fått till en inloggning och så nu. Men nu är det så att medlemmarna ska kunna ladda upp bilder. Jag hade tänkt göra en mapp då som heter upload. Men då kom jag att tänka på.

Om medlemmarna laddar upp en bild som heter likadant? Hur gör man för att förhindra det?

Medlem sedan juli 200212 inlägg
#2

Om du har ett inloggnings system och användarna måste vara inloggade för att kunna ladda upp så ksulle du ju kunna göra så att bilderna bytar namn till användarens ID med
rename();

Medlem sedan mars 2002112 inlägg
#3

Smart!

Du, det var ju inte sån dum idé. Ska ta och kolla upp det dära!

Smurto duh! :birp

Medlem sedan jan. 2000372 inlägg
#4

Eller lägg filerna i en databas istället för i filsystemet.

Medlem sedan mars 2002112 inlägg
#5

jaha

Vad tjänar jag på att lägga in bilderna i en databas då? Det kan jag inte ens heller ;)

Fick inte ut nåt vettigt av själva rename funktionen iaf.

är det typ.

rename("gamla namnet", "nya namnet");

Fundelurar :p

Medlem sedan feb. 20012 412 inlägg
#6

Jag hade laddat upp bilden till en speciell katalog och sedan bara lagt in adressen till bilden i databasen.

Description
bool rename ( string oldname, string newname)

Attempts to rename oldname to newname.

Returns TRUE on success, FALSE on failure. Example 1. Example with rename()

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

http://www.php.net/manual/en/function.rename.php

Medlem sedan mars 2002112 inlägg
#7

okej, men jag har läst den där skiten på php.net men förstår likt förbannat inte..... :x

Medlem sedan juli 200212 inlägg
#8

Lek lite med den så kommer du lyckas!

$fileext är filtypen på din bild!!! om du ska tillåta flera olika filtyper så skulle du kunna använda switch methoden...

Lycka till!

$nyttNamn = $_SESSION['id'].$fileext;
		if (move_uploaded_file($_FILES['userfile']['tmp_name'], "FULL PATH TILL KATALOGEN".$nyttNamn)){
			echo "Filen är uppladdad under namnet ".$nyttNamn;
		} else echo "Filuppladdningen misslyckades !!";
	} else {
Medlem sedan mars 2002112 inlägg
#9

okej!

Nu funkar det iaf att ladda upp filer. Så här ser koden ut.

<?
$dir ="Path till mappen";
?>
<?
if($send){
if(!($bild==""||$bild=="none")){
copy($bild,$dir.$bild_name);
echo "Din bild laddades upp utan problem";
echo "<br>";
}
}
?>

Det som saknas nu är just det att döpa om filen till userns id.

Medlem sedan mars 2002112 inlägg
#10

Haha, Det klöras ganska bra. Nu har jag fått till så filen byter namn....Men det blir inte .jpg eller .gif

Måste jag fixa en kod som kollar vad det är för filtyp. Om vi säger att bara .jpg och .gif ska kunna laddas upp?

Kan man använda sig av $fil_type nånstans tro?

*fundelurar* :D

Medlem sedan sep. 2000155 inlägg
#11

Kan ge dig ett exepel på ett sätt jag använt mig av i ett av mina gamla projekt.

if ($file != "none") {
 if (eregi(".jpg|.png|.gif|.jpeg",$file_name)) {     
  $file_type = explode(".", $file_name);
  $final_file = "$id.$file_type[1]";       
  copy($file, "members/$final_file");         
  unlink($file);                  
 } else $final_file = "";  
} else $final_file = "";

Dock märkte jag att det funkar inte så bra om folk har "." i filnamnet mer än den som skall vara mellan namnet å filtypen. Men hur många har det :h

Ska tilägga oxå att jag använder $final_file till att lägga in i en databas lite senare i koden om nån undrar vad jag pysslar med :)

Medlem sedan juli 200212 inlägg
#12

Till koden jag skickade till dig skulle du kunna använda:

		switch ($_FILES['userfile']['type']){
			case "image/gif":
				$fileext = ".gif";
			break;
			case $_FILES['userfile']['type']="image/jpeg" ||$_FILES['userfile']['type']="image/pjpeg":
				$fileext = ".jpg";
			break;
			case $_FILES['userfile']['type']="image/png" ||$_FILES['userfile']['type']="image/x-png":
				$fileext = ".jpg";
			break;
Medlem sedan dec. 2001314 inlägg
#13

Mungo skrev:

Eller lägg filerna i en databas istället för i filsystemet.

Kan du förklara det där lite närmre?

Medlem sedan jan. 2000224 inlägg
#14

Jag lägger in bildsökvägen i en databas och då kan man skita i om den skulle heta upload eller ej.

Medlem sedan juli 200212 inlägg
#15

Jag har ett uppladdning system!!!!! Bytar namn till användarens ID, sen lägger in sökväg i MySQL´en m.m

Medlem sedan mars 2002112 inlägg
#16

hey

Nu har jag varit frånvarande ett tag. ursäkta. Men nu har jag fått till att koden kopierar och byter namn på filen. Men nu tänkte jag lägga in sökvägen till bilden i databasen...Men de funkar inte riktigt.

Så här ser det ut:

$sql ="INSERT INTO banner(bild) VALUES('$dir') WHERE nick ='$user'";

Tar jag bort WHERE nick = user grejen. Då kommer sökvägen in i tabellen. Men i ett nytt fält. Nån som ser felet? ;)

Medlem sedan feb. 20012 412 inlägg
#17
$sql ="UPDATE banner SET bild = '$dir' WHERE nick ='$user'";
Medlem sedan mars 2002112 inlägg
#18

Tack ska du ha Jörgen!

Mvh Jörgen ;)

253 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)