webForumDet fria alternativet

Bilduppladdning funkar ej på server

PHPur PHP

4 svar · 363 visningar · startad av henkepenka

henkepenkaMedlem sedan sep. 2002125 inlägg
#1

Hej!

Har gjort en sida åt en kund och utvecklat den på min dator lokalt i Appache-miljö.

Kunden ska på administrationssidorna ha möjlighet att ladda upp bilder till servern så att de ska kunna visas på sidan.
Detta funkade klockrent lokalt. Men när jag idag la upp sidan på deras webbhotell funkar inte bilduppladdningen alls. Inga bilder skickades upp på servern. Vad kan detta bero på?

//Henrik

henkepenkaMedlem sedan sep. 2002125 inlägg
#2

Det kanske hjälper ifall jag skickar med lite kod.

$img_dir = '../images/'; // Sökväg till mappen där bilden ska sparas
	$new_img_width_large = 600; // Bredd som bilden ska ha
	$new_img_width_small = 100; // Bredd på lilla bilden
	$img_compress = 60; // Vilken komprimering (100=ingen)
	$uploaded_img_name = $_FILES['foto']['name']; // foto är namnet på fältet
	$uploaded_img_location = $_FILES['foto']['tmp_name'];
	$uploaded_img_type = $_FILES['foto']['type']; // vilken typ filen är
	$uploaded_img_end = strtolower(substr($uploaded_img_name, (strrpos($uploaded_img_name, '.')))); // filändelsen på bilden
	$pageId = $_POST['pageId'];
	$bildId = $_POST['bildId'];
	// ######################################

	if (isset($_POST['action']) && $_POST['action'] == 'upload' && !empty($_FILES['foto']['name'])) {

		//  Godkänn filändelsen
		if ($uploaded_img_type == "image/pjpeg" || $uploaded_img_type == "image/gif" || $uploaded_img_type == "image/jpeg") {
	
		
		$Connect = mysql_connect ('XXXX', 'XXXX', 'XXXX');
					mysql_select_db('XXXX');
		
		if($_POST['picNew']=='yes'){
			$senasteBildIdQuery = mysql_query("SELECT * FROM bild WHERE bildPageId ='$pageId' ORDER BY bildId desc Limit 1") or exit(mysql_error());
			$senasteBildId = mysql_fetch_array($senasteBildIdQuery);
			
			$bildNummer= ($senasteBildId['bildNumber'] + 1);
			
			$addBild = mysql_query("INSERT INTO bild (bildPageId,bildNumber,bildType) VALUES ('$pageId','$bildNummer','$uploaded_img_end')") or die(mysql_error());
			
			$bildId=$bildNummer;
		}elseif($_POST['picNew']=='no'){
			$ChangeQuery = mysql_query("UPDATE bild SET bildType = '$uploaded_img_end' WHERE bildNumber = " . $_GET['bildId'] . " AND bildPageId =" . $_GET['pageId']) or exit(mysql_error()); 
		}
		
		mysql_close($Connect);
		
		
		
		$img_x_y_size =  getimagesize($uploaded_img_location);
	
		$uploaded_img_end = strtolower(substr($uploaded_img_name, (strrpos($uploaded_img_name, '.'))));

			// Ändra storleken om bilden är större än $new_img_width_large
			if ($new_img_width_large < $img_x_y_size[0]) {
	
				$new_img_height_large = ceil(($new_img_width_large / $img_x_y_size[0]) * $img_x_y_size[1]);
				$new_img_height_small = ceil(($new_img_width_small / $img_x_y_size[0]) * $img_x_y_size[1]);
	
				// Gör om bildens storlek
				$new_image_large = imagecreatetruecolor($new_img_width_large, $new_img_height_large);
				$new_image_small = imagecreatetruecolor($new_img_width_small, $new_img_height_small);
	
				// Kontrollera vilken bildtyp det är (1=gif , 2=jpg , 3=png)
				switch($img_x_y_size[2]) {
					case 1:
						$image = imagecreatefromgif($uploaded_img_location);
					break;
					case 2:
						$image = imagecreatefromjpeg($uploaded_img_location);
					break;
					case 3:
						$image = imagecreatefrompng($uploaded_img_location);
					break;
				}

				imagecopyresampled($new_image_large, $image, 0, 0, 0, 0, $new_img_width_large, $new_img_height_large, $img_x_y_size[0], $img_x_y_size[1]);
				imagecopyresampled($new_image_small, $image, 0, 0, 0, 0, $new_img_width_small, $new_img_height_small, $img_x_y_size[0], $img_x_y_size[1]);
	
				// Kopiera bilden till sin mapp
				$save_img_large = $img_dir . 'picPage' . $pageId . 'Bild' . $bildId . $uploaded_img_end;
				$save_img_small = $img_dir . 'picPage' . $pageId . 'Bild' . $bildId . $uploaded_img_end;
				
				
	
			} else {

				move_uploaded_file($uploaded_img_location, $img_dir . 'picPage' . $pageId . 'Bild' . $bildId . $uploaded_img_end);
				move_uploaded_file($uploaded_img_location, $img_dir . 'picPage' . $pageId . 'Bild' . $bildId .  $uploaded_img_end);
	
			}
	
			
			
			imagejpeg($new_image_large, $save_img_large, $img_compress);
			imagejpeg($new_image_small, $save_img_small, $img_compress);
	
			// Frigör minne som associerats med bilderna
			imagedestroy($image);
			imagedestroy($new_image_large);
			imagedestroy($new_image_small);
			
			echo "<script language=JavaScript type=text/javascript>";
		echo "window.opener.location.reload();";
		echo "window.close();";
		echo "</script>";

		} else {
			header('Location: upload.php?id=' . $_GET['id'] . '&wrong_file_end=1');
			exit;
		}
		exit;
		
		
		//header('Location: upload.php?done=Yes');
		
	}

Det funkar som sagt lokalt på datorn och när jag kör de på deras server så läggs posten till i databasen, men ingen bild laddas upp...

The_HulkMedlem sedan juni 20031 837 inlägg
#3

har katalogen där bilderna skapas rättigheter att skriva?

/r
behöver du verkligen göra detta två gånger?

                move_uploaded_file($uploaded_img_location, $img_dir . 'picPage' . $pageId . 'Bild' . $bildId . $uploaded_img_end);
                move_uploaded_file($uploaded_img_location, $img_dir . 'picPage' . $pageId . 'Bild' . $bildId .  $uploaded_img_end);
henkepenkaMedlem sedan sep. 2002125 inlägg
#4

Kan jag se de på nått sett i WS-FTP? Kan jag sätta den rättigheten själv eller måste jag be webhotellet om de?

The_HulkMedlem sedan juni 20031 837 inlägg
#5

man brukar kunan högerklicka på katalogen och välja rättigheterna.
annars får du kontakta webbhotellets support och fråga hur du ska gå tillväga.
man kan ofta se rättigheterna i fillistan i sin FTP-klient. brukar så som som en kombination av 9 tecken av bokstäverna rwx samt mellanslag eller bindestreck.

Man kan sätta rättigheter för filens ägare, gruppen som ägaren tillhör eller för alla.

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