Avatar billede budolfsen Nybegynder
09. september 2008 - 20:16 Der er 2 kommentarer

Billede upload

Hej Eksperter

Jeg er løbet ind i et problem med et upload script, som jeg har lavet, men det virker ikke hos one.com, men det virker fint hos servage.net.

Mappen som billederne skal oploades til er sat til 777 i begge tilfælde.

Scriptet skal uploade et billede til mappen, men skal samtidig omdøbe det fra det oprindelige navn til et nyt.

Her er billedupload scriptet:
<?php require_once('../Connections/ryhammer.php');
mysql_select_db($database_ryhammer, $ryhammer);
?>
<?
//Her skal filen flyttes fra
$src = $_FILES['filnavn']['tmp_name'];

//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['filnavn']['name'])));

//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = $billedenavn . "." . $ext;

//Her er vores destination for det store billede
$dst = "../billeder/" . $nytNavn;

//her uploades det store billede:
copy($src, $dst);



//billed-funktioner:
$image = $dst;

//hvis billedet eksisterer
if(file_exists($image)) {

//billedet eksisterer
$foto = 1;

//find størrelsen
$imgsize = getimagesize($image);

//hvis bredden er mere end 250px
if($imgsize[0] > 250) {

//sæt det nye billedes bredde til 250,
//og regn højden ud så propertionerne passer
$width = 250;
$height = $imgsize[1] / ($imgsize[0] / 250);

//lav et nyt, blankt billede
$dst_img=imagecreatetruecolor($width,$height);

//åbn kildebilledet
$src_img=ImageCreateFromJpeg("$image");

//kopiér og resize kildebilledet over i det nye billede
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img));

//lav output til mappen /tmp/
ImageJpeg($dst_img, "../billeder/" . $nytNavn);
       
//hvis bredden ikke er over 200px
} else {

//åbn kildebilledet og lav output
$src_img=ImageCreateFromJpeg("$image");
ImageJpeg($src_img, $dst);
};

//sæt url'en til billedet
$imgurl = "../billeder/" . $nytNavn;
} else {

//foto findes ikke
$foto = 0;
};


//Her ligges oplysningerne ind databasen – huske at connecte til den!
$query    = "INSERT INTO billeder (billedenavn) VALUES ('$billedenavn.$ext')";
mysql_query($query);

print "<h1>Filen $billedenavn er blevet uploaded</h1>";

?>

Og her er upload-siden:
<?php
if (!isset($_SESSION)) {
  session_start();
}
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
  // For security, start by assuming the visitor is NOT authorized.
  $isValid = False;

  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
  // Therefore, we know that a user is NOT logged in if that Session variable is blank.
  if (!empty($UserName)) {
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
    // Parse the strings into arrays.
    $arrUsers = Explode(",", $strUsers);
    $arrGroups = Explode(",", $strGroups);
    if (in_array($UserName, $arrUsers)) {
      $isValid = true;
    }
    // Or, you may restrict access to only certain users based on their username.
    if (in_array($UserGroup, $arrGroups)) {
      $isValid = true;
    }
    if (($strUsers == "") && true) {
      $isValid = true;
    }
  }
  return $isValid;
}

$MM_restrictGoTo = "login.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) { 
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo);
  exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>upload billeder</title>
</head>

<body>
<form action="billeduploadok.php" method="post" enctype="multipart/form-data" id="form1">
  <table width="50%">
    <tr>
      <td width="34%">Fil, der skal overf&oslash;res:
      <label> </label></td>
      <td width="66%"><input type="file" name="filnavn" id="filnavn" /></td>
    </tr>
    <tr>
      <td>Billedenavn:</td>
      <td><input name="billedenavn" type="text" id="billedenavn" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><label>
        <input type="submit" name="button" id="button" value="Overf&oslash;r" />
      </label></td>
    </tr>
  </table>
  <br />
  <label></label>
</form>
</body>
</html>

Jeg håber I kan hjælpe mig, da jeg simpelthen ikke kan greje hvorfor det virker på en server, men ikke på den anden.
Avatar billede jakobdo Ekspert
09. september 2008 - 21:10 #1
Prøv at ret:
//her uploades det store billede:
copy($src, $dst);

til:
//her uploades det store billede:
move_uploaded_file($src, $dst);
Avatar billede jakobdo Ekspert
09. september 2008 - 21:11 #2
Og ellers prøv at byg videre på min upload artikel: http://www.eksperten.dk/artikler/1200
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester