webForumDet fria alternativet

Lagra filnamn i databasen

PHP

3 svar · 440 visningar · startad av jaksod

Medlem sedan feb. 200344 inlägg
Frågan#1

Hej,

Jag håller på att konstruera ett formulär, med lite frågor som lagras i en databas, så långt fungerar det också.

Sen vill jag ladda upp en bild, själva bilden som man väljer lägger sig där den ska. Problemet är att jag vill veta vem som har laddat upp den.

Antingen genom att spara filnamnet som en post i databasen, gärna då som en länk. Eller på något sätt kunna veta vad som hör till vad.

Jag har knappt sysslat med php & databaser (mysql) förut så förklara gärna på relativt enkla sätt

//Jakob

Medlem sedan maj 20071 061 inlägg
#2

Tillsammans i tabellen i med svaren på frågorna lägger du in namnet på bilden i ett fält. Du vet sökvägen till bilderna och skapar bara en länk till bilden då du pressenterar svaren.

Medlem sedan feb. 200344 inlägg
#3

Jo men frågan är väl mer hur man gör mer konkret.
Hur skriver man för att göra så?

Medlem sedan maj 20071 061 inlägg
#4

Hoppas detta kan hjälpa dig. En handler jag inte har använt på länge men den bör funka.

function file_upload($source_file, $destination_directory, $new_file_name) {
	
	// $source_file - Orginal filen (tidigare $uploadInstans)
	// $destination_directory - Biblioteket den ska till (tidigare $uploadPath_Win eller$uploadPath_Unix)
	// $new_file_name - Filens nya namn (tidigare $uploadFilename)
	
	global $DOCUMENT_ROOT;
	
	// Lägger början av filmeddelandet i en fil
	$error_prefix = "FATAL: File upload of \"" . $source_file . "\" to \"" . $destination_directory . $new_file_name . "\" failed.";
	
	// kollar att orginal filen går att läsa
	$fp = @fopen($source_file, "r");
	if (!$fp) {
		echo $error_prefix." Originating file cannot be read or does not exist.";
		return "unreadable";
		exit();
	} // if (!$fp)

	// kollar att destinations katalogen inte är skrivskyddad
	$dir_check = @is_writeable($destination_directory);
	if (!$dir_check) {
		echo $error_prefix." Destination directory is not writeable or does not exist.";
		return "locked";
		exit();
	} // if (!$dir_check)
	
	// kollar så att en fil med samma namn inte redan finns
	$dest_file_exists = file_exists($destination_directory . $new_file_name);
	if ($dest_file_exists) {
		echo $error_prefix." Destination file alredy exists.";
		return "exist";
		exit();
	} // if ($dest_file_exists)

	// ---------- ALLT är okej -----------
	
		// sätter ett @ framför för att inga felmedelanden ska spottas ut på skärmen
		//$copy_file = @copy($source_file, $DOCUMENT_ROOT . $destination_directory . $new_file_name);
			
	// copy  the file from the temp directory to the upload directory, and test for success
	if(copy($source_file, $destination_directory . $new_file_name)){
	} else {
		echo $error_prefix." An unknown error appeared.";
		return "error";
		exit();
	} // if(copy($source_file, $DOCUMENT_ROOT . $destination_directory . $new_file_name))
	
	return "ok";
} // function file_upload

Förutom att kolla massa saker så inget går fel så koppierars filen från default uppload kattalogen, som man ställt in på servern, till den önskade kattalogen just för denna applikation och passar då på att byta namn på filen till ett mer passande filnamn. Filens namn lägger man förslagsvis in i en post i databasen.

249 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)