Avatar billede -kenner- Nybegynder
21. april 2005 - 21:48 Der er 4 kommentarer og
1 løsning

File upload med php

Hej eksperter,

Jeg har dette script fra webcafe.dk / http://www.webcafe.dk/artikler/php/upload

1. Det uploader fint, men det afviser ikke billedet når det er over 30 kb, som jeg har bedt det om, hvad er der galt?

2. jeg vil gerne gemme hele billedets url i en mysql database, som er oprettet, men hvordan hiver jeg det uploadede billedes url frem?

Mvh Kenneth
Avatar billede milo Nybegynder
21. april 2005 - 22:05 #1
1) Hvordan har du sat den 30 kb grænse?

2) Hvad mener du med filens url? Url'en bliver jo stien du uploader det til + filnavnet. Billedet har jo ikke sin egen url du uploader sammen med det. Du kan evt. bare statisk skrive url'en foran filnavnet.
Avatar billede busschou Praktikant
21. april 2005 - 22:05 #2
2) Ifølge siden du henviser til er dette sat i $til variablen
Avatar billede -kenner- Nybegynder
22. april 2005 - 16:05 #3
1) i eksemplet er den så sat til 10 kb, men her: $konfiguration["max_stoerrelse"] = "10";

2) billedet skal gemmes som et id, som jeg henter fra databasen..
Avatar billede -kenner- Nybegynder
23. april 2005 - 19:45 #4
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>Uploader</title>
</head>
<body>
<?php
/**
* Hvor skal filerne uploades til?
* Husk, at webserveren skal kunne skrive til dette bibliotek
*/
$konfiguration["upload_bibliotek"] = "./upload";

/* Hvor mange kilobytes maa filerne fylde per styk? */
$konfiguration["max_stoerrelse"] = "2";


/**
* Checker PHP-version
*/
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}


/**
* Udligner forskellene mellem 4.1.x og 4.0.x
* Bemaerk, at disse ikke er "superglobals"
*/
if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}


if($_FILES["upfil"]["size"] > 0) {

  /**
  * Hvis der er en fil, saa uploader vi den.
  *
  * Foerst slaar vi lige fast, hvor filen skal flyttes fra og til.
  */

  $fra = $_FILES["upfil"]["tmp_name"];
  $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];

  /**
  *  Checker lige om filen er for stor til at vi vil acceptere den.
  *  Vi bruger ceil() i stedet for round(), saa vi ikke faar den skoere
  *  situation, at fejlmeldingen siger, at filen er for stor, men angiver
  *  samme stoerrelse for filen og den oevre graense.
  */
  $fil_stoerrelse = filesize($fra)/1024;
  if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
      die("Desv&aelig;rre - filen er for stor. Jeg accepterer kun " .
          $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
          ceil($fil_stoerrelse) . "kb");
  }
  if(function_exists("move_uploaded_file")) {
    move_uploaded_file($fra, $til);
  } else {
    copy($fra, $til);
  }

  header("Location: " . $_SERVER["PHP_SELF"]);
  exit;

} else {
?>

<form action="uploader.php" method="post" enctype="multipart/form-data">
  <b>Fil til upload:</b>
  <input type="file" name="upfil" />
  <input type="submit" value="upload" />
</form>

<?php
}
?>
</body>
</html>

Sådan ser den nuværende kode ud, som er siden der tager imod opload fra en anden side. Hvordan ken jeg bestemme hvad den uploadede fil skal hedde fra scriptet? Henter et id fra min database, som billedet skal hedde.
Avatar billede -kenner- Nybegynder
13. maj 2005 - 19:04 #5
Lukket, fordi spørgsmålet er gået i stå, og jeg stadig ikke har fået svar ..
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