Avatar billede daxthevaks Nybegynder
30. marts 2004 - 00:16 Der er 6 kommentarer og
1 løsning

LIdt hjælp til upload

Hej jeg har dette upload script på http://www.dax.lir.dk/la/test.php Men den siger et eller andet om en fejl på linje 54, Så hvis der er nogle der lige kan hjælpe mig med det ville jeg blive glad..

Her er koden så:

<?php

# Name    : PHP Upload
# Author  : Terrence Ma
# Email    : terrence@terrence.com
# Web      : http://www.terrence.com
# Date    : V1.0 05/02/2002
# License  : GNU GPL - http://www.gnu.org/copyleft/gpl.html
# Warranty : No Warranty

# html functions
function header_html() {
  echo("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">\n");
  echo("<HTML><HEAD><TITLE>PHP Upload</TITLE></HEAD>\n\n");
  echo("<BODY>\n\n");
  echo("<CENTER><H1>PHP Upload</H1></CENTER><HR><BR>\n\n");
}

function request_html() {
  echo("<CENTER>\n");
  echo("<FORM METHOD=\"POST\"  ENCTYPE=\"multipart/form-data\">\n");
  echo("<INPUT TYPE=\"hidden\" NAME=\"MAX_FILE_SIZE\" VALUE=\"1024000\">\n");
  echo("Filename :\n");
  echo("<INPUT TYPE=\"file\" NAME=\"filename\"  SIZE=\"30\">\n");
  echo("<BR><BR>\n");
  echo("<INPUT TYPE=\"submit\" VALUE=\"Upload\">\n");
  echo("<INPUT TYPE=\"reset\" VALUE=\"Clear\">\n");
  echo("</FORM>\n");
  echo("</CENTER>\n\n");
}

function response_html($filename) {
  echo("<PRE>\n");
# echo("$filename :\n\n");
  if ($filename == "none")
    echo("Error: Missing Filename\n");
  elseif (!$file = fopen($filename, "r"))
    echo("Could not open file.\n");
  else
    fpassthru($file);
  echo("</PRE>\n");
}

function footer_html() {
  echo("<HR>\n");
  echo("<A HREF=\"http://www.io.com/~terrence/php/upload/upload.txt\">\n");
  echo("Program Source</A><BR>\n");
  echo("</BODY></HTML>\n");
}

# main program
# if no parameter, print request html
# else print response html
if (!$filename) {

  header_html();
  request_html();
  footer_html();

} else {

  header_html();
  response_html($filename); 
  footer_html();

}

?>
Avatar billede mrmox2 Nybegynder
30. marts 2004 - 02:43 #1
linie 54 hedder: if (!$filename) { ... hvad betyder det der !
Avatar billede mrmox2 Nybegynder
30. marts 2004 - 02:48 #2
nå jo, ik noget :-)
Avatar billede sukos Juniormester
30. marts 2004 - 07:29 #3
Den spørger om en var er sat.

Den fejl du får er en NOTICE, fordi $filename ikke er defineret på nogen måde.

Og så kan du bruge:

header_html();

if(!isset($_POST["filename"])) {
request_html();

} else {

response_html($_POST["filename"]));

}

footer_html();
Avatar billede daxthevaks Nybegynder
30. marts 2004 - 11:29 #4
Okay nu ved jeg ik lige om jeg har gjort noget forkert, Men ellers ser det ud som om at det ik virker.. www.dax.lir.dk/la/test2.php
Avatar billede sukos Juniormester
30. marts 2004 - 16:32 #5
det er den her, sikkert,
response_html($_POST["filename"]));

som skal være
response_html($_POST["filename"]);

men hvad er det scriptet skal?
Avatar billede daxthevaks Nybegynder
30. marts 2004 - 20:34 #6
Det skulle bare være et lille simpel upload script..
Avatar billede daxthevaks Nybegynder
31. marts 2004 - 22:47 #7
Nå Men jeg har fundet et andet script som virker, Så jeg lukker bare..


<?php

function doUpload($fileLink, $max_size=102400, $dir = "upload"){
// skal være $_FILES['upload_felt'] den skal foders med; max size i b; mappe

  // array med godkendte filtyper
  $accept[] = "jpg";
  $accept[] = "jpeg";
  $accept[] = "php";

  $startpos = strrpos($fileLink['name'], "."); // finder pos af sidste . i navn

  $slutpos = strlen($fileLink['name']) - $startpos; // finder længden af filnavn
                                                          // længden af hele navnet minus antal af bogstavver før sidste .

  $filtype = addslashes(substr($fileLink['name'], $startpos+1, $slutpos)); // finder filtype ved at tage et udsnit af strengen, se php.net/substr
  $filnavn = addslashes(substr($fileLink['name'], 0, $startpos)); // finder filnavn ved at tage et udsnit af strengen

  if(in_array($filtype, $accept) && filesize($fileLink['tmp_name']) < $max_size){ // tjekker om filtype er acceptabel og størrelsen er lille nok

    if(file_exists("./" . $dir . "/" . $filnavn . "." . $filtype)){ // ser om filen findes
      $i=2;
      while(file_exists("./" . $dir . "/" . $filnavn . "_" . $i . "." . $filtype)){ // en løkke for at finde et alternativt navn
        $i++;
      }
      $final_name = $filnavn . "_" . $i . "." . $filtype;
    }
    else{
      $final_name = $filnavn . "." . $filtype;
    }
    if(copy($fileLink['tmp_name'], "./" . $dir . "/" . $final_name)){ // kopierer filen hen til sit endelige sted
      $arr['size'] = filesize($final_name);
      $arr['name'] = $final_name;
      return $arr; // returnere filnavn er størrelse som et array
    }
  }
  else{
    return false;
  }
}


if(isset($_POST['hidden'])){
  $returnArr = doUpload($_FILES['upfil'],204800, ""); // max størrelse 2kb, dir er ./upload/
  if($returnArr !== false){
    echo "Weee... det lykkedes:<br><br>";
    print_r($returnArr);
  }
  else echo "Ehhh... lykkedes ik'...";
}
?>
<form action="<?php echo basename($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data">
  <b>Fil til upload:</b>
  <input type="file" name="upfil" />
  <input type="hidden" name="hidden" value="check" />
  <input type="submit" value="upload" />
</form>
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