webForumDet fria alternativet

Säkerhet i uploadscript

29 svar · 1 550 visningar · startad av learn · sida 2 av 2

learnMedlem sedan jan. 20051 130 inlägg
#21

Får detta:

Fatal error: Call to undefined function: mime_content_type() in...

sl0kMedlem sedan maj 2005562 inlägg
#22

learn skrev:

Får detta:

har du skrivit av mitt ex exakt ? den ska nämligen inte anropa mime_content_type om funktionen inte finns

learnMedlem sedan jan. 20051 130 inlägg
#23

Det är ju det som är problemet. Funktionen finns inte i min PHP-version.

learnMedlem sedan jan. 20051 130 inlägg
#24

Detta fungerar galant:

<img src="bild.php?namn=test" />
// Root
$root = $_SERVER['DOCUMENT_ROOT'] . '/';

// Där bilderna ligger
$folder= 'bilder/';

// Bilden
$pic= $_GET["namn"];

// Bildtyp
$extension = "jpg";

// Sökvägen
$file_real = $root.$folder.$pic.".".$extension;

// Visa bilden
if ((basename($_SERVER['PHP_SELF']) == 'bild.php')&&($_SERVER['QUERY_STRING'] != null)) {
		
	// Om filen finns
	if (file_exists($file_real)) {
		
		// MIME-typ
		switch($extension) {
			case "bmp":     $type = "image/bmp";                     break;
			case "gif":     $type = "image/gif";                     break;
			case "jpg":     $type = "image/jpg";                     break;
			case "jpe":     $type = "image/jpg";                     break;
			case "jpeg":    $type = "image/jpg";                     break;
			case "qti":     $type = "image/x-quicktime";             break;
			case "tif":     $type = "image/tiff";                    break;
			case "tiff":    $type = "image/tiff";                    break;
		}
		
		// Skicka bilden till webbläsaren
		header("Pragma: public");
		header("Expires: 0");
		header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
		header("Cache-Control: public", false);
		header("Content-Description: File Transfer");
		header("Content-Type: " . $type);
		header("Accept-Ranges: bytes");
		header("Content-Disposition: attachment; filename=" . $pic. ";");
		header("Content-Transfer-Encoding: binary");
		header("Content-Length: " . filesize($file_real));
		@readfile($file_real);
	
	// Bilden finns inte
	} else {
	}
}

Men nu vill jag kontrollera så att bilden inte är för bred. Säg att maxbredden är 500px. Är den större än så ska den förminskas innan den visas. Jag har förstått att jag ska använda mig av "imagecopyresampled", eller?

I vilket fall som helst får jag det inte att funka. Har ett script (se nedan) men vet inte vart och hur jag ska redigera och pula in det i koden ovan... Snälla kan ngn hjälpa mig med detta. Tack!! :bire

// The file
$filename = 'test.jpg';

// Set a maximum height and width
$width = 200;
$height = 500;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig)) {
   $width = ($height / $height_orig) * $width_orig;
} else {
   $height = ($width / $width_orig) * $height_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, null, 100);
sl0kMedlem sedan maj 2005562 inlägg
#25

learn skrev:

Det är ju det som är problemet. Funktionen finns inte i min PHP-version.

funktionen finns inte för mig heller .. men det exemplet jag postade fungerar utan det.. finns inte funktionen så använder den system(trim(file -bi osv.. vilket fungerar

sl0kMedlem sedan maj 2005562 inlägg
#26

det skript du använder .. där sätter du ju $extension till "jpg" o sen testar du $extension med switch .. varför ??
du har ju satt den explicit till "jpg" så då vet du ju vilken filtyp den är.

learnMedlem sedan jan. 20051 130 inlägg
#27

OK, men hur får jag mitt script att fungera?

R: missade ditt senaste inlägg. I själva verket vet jag inte vilken filtyp det är frågan om. Bilden skickas med i anropet. Jag gör bara exemplet lite enklare.

learnMedlem sedan jan. 20051 130 inlägg
#28

Någon som har lust att hjälpa mig med mitt problem?

learnMedlem sedan jan. 20051 130 inlägg
#29

Nobody...?

learnMedlem sedan jan. 20051 130 inlägg
#30

Jag får det verkligen inte att funka. Hur ska jag få in "storlekshanteringen" i mitt script.

Specifikation av mitt problem

Snälla hjälp mig. :)

138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)