Avatar billede dytti Novice
04. december 2008 - 14:12 Der er 5 kommentarer og
1 løsning

fejl i upload script

Jeg har siddet og leget med dette uploadscript
http://www.phpuniverset.dk/show_artikels.phtml?ArtikelID=14&artikel=Fileupload.til.database

Det giver mig denne fejlmeddelelse:
Parse error: syntax error, unexpected T_VARIABLE in /customers/xxxx.dk/xxxx.dk/httpd.www/xxxxxx/upload.php on line 17
I Dreamweaver er linie 17 denne her:
$fileupload->filetype = "jpg$|jpeg$|gif$|png$"; // jpg, jpeg, gif eller png

Er der nogen der kan finde fejlen, eller kender i et bedre upload script?
(det er næsten 2 spørgsmål i eet, så jeg giver 100 point's)
Avatar billede jakobdo Ekspert
04. december 2008 - 15:51 #1
Prøv at vis hele koden i upload.php
Avatar billede dytti Novice
04. december 2008 - 16:17 #2
Her er upload.php:
<?
// Henter klassen
require("cls_fileupload.php");

// Brug dine egne oplysninger
$server = "din server";
$bruger = "din bruger";
$kodeord = "din kode";
$database = "din database";

// Forbinder til MySQL og vælger database
mysql_connect("$server","$bruger","$kodeord");
mysql_select_db("$database");

// Her sætter vi klassen op
$fileupload->maxfilesize = 200 * 1024 // 200kb - skal angives i bytes
$fileupload->filetype = "jpg$|jpeg$|gif$|png$"; // jpg, jpeg, gif eller png

// gemmer filen i databasen
$fileupload->upload("filen");

// Lukker vores forbindelse til MySQL
mysql_close();

echo "Filen er blevet gemt";
?>

Og her er klassen:
<?
class cls_fileupload {
  var $maxfilesize;
  var $filetype;

  function upload ($filefield) {

    // Først henter vi vores felter i arrayet $_FILES
    $filefield = $_FILES[$filefield]['tmp_name'];
    $filefield_name = $_FILES[$filefield]['name'];
    $filefield_size = $_FILES[$filefield]['size'];
    $filefield_type = $_FILES[$filefield]['type'];
   
    if ((isset($this->type) != true or eregi("(.)+\\.(".$this->filetype.")",$filefield_name))
    and (isset($this->maxfilesize) != true or $this->maxfilesize <= $filefield_size) {
     
      // Så gør vi vores indholdet af vores fil klar til at komme ned i databasen
      $data = addslashes(fread(fopen($filefield, "r"), filesize($filefield)));

      // Så gemmer vi filen i vores database
      mysql_query("INSERT INTO filer (name, data, size, type) \n VALUES
      (´".$filefield_name."´, ´".$data."´, ´".$filefield_size."´, ´".$filefield_type."´)");
  }

  function vis ($id) {
    // Her henter vi vores data
    $resultat = mysql_query("SELECT data, type from filer where id = ".$id);
    while($raekke = mysql_fetch_array($resultat)) { $svar[] = $raekke; }
   
    // Hvis $id ikke findes i databasen
    if (sizeof($svar) == 0) {
      echo "Kunne ikke finde filen med id ".$id." i databasen!!!";

    } else {
      // Hvis $id findes i databasen
      // Træk værdierne ud
      extract($svar[0]);

      // sæt typen af indholdet (Husk at der ikke må være sendt noget før!)
      header("content-type: ".$type);

      // Udskriv filen
      echo $data;
    }
  }

  function slet ($id) {
    // Slet $id
    mysql_query("DELETE FROM filer WHERE id = ".$id.";");
  }
}
// Nu mangler vi bare at lave en henvisning til vores klasse
$fileupload = new cls_fileupload;
?>
Avatar billede jakobdo Ekspert
04. december 2008 - 17:19 #3
Din fejl er denne:
$fileupload->maxfilesize = 200 * 1024 // 200kb - skal angives i bytes
Der mangler ;

$fileupload->maxfilesize = 200 * 1024; // 200kb - skal angives i bytes
Avatar billede dytti Novice
10. december 2008 - 08:40 #4
du havde som sædvanlig ret ;-)
(beklager sen respons)
Lægger du et svar?
Avatar billede jakobdo Ekspert
10. december 2008 - 08:51 #5
Svar!
Avatar billede jakobdo Ekspert
10. december 2008 - 13:21 #6
Takker for point.
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