Top
Phpuniverset logo
 

INDHOLD

Forside

Script libary

Job annoncer

Tips og Tricks

Konkurrence

Downloads

Dokumenter

PHP bog shop

Forum

Online udviklere


ARTIKLER

CSS

Diverse

E-handel / annoncer

Grafik

Html

Internet

Javascript

Linux

PHP/MySQL

Programmer

Flash

Søgemaskiner

Windows

C / C++


INFO

Information

Annoncering

Kontakt

Forside Forum PHP, mysql FEJL i php fil upload!

FEJL i php fil upload!


 

FEJL i php fil upload!

esben bjerre  

Hej. jeg har et filupload på min HP www.158587.hotserv.dk/upload.php
kildekoden ser således ud:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>BROWSER DETECT</title>
</head>

<body style="background-color: #ffffff">

<?php

/**
* Simpelt script der tager imod et filupload og lister
* filer i upload-biblioteket.
*
* Scriptet er et eksempel til en artikel paa WebCafe.dk:

*     http://www.webcafe.dk/artikler/php/upload/
*/


/**
* 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"] = "500";


/**
* 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 {

  
/**
   * Intet tegn paa upload, saa vi viser bare listen over filer
   * og HTML-formularen til nye uploads.
   */
  
$indhold listFiler($konfiguration["upload_bibliotek"]);
  
$indhold .= bygFormular($_SERVER["PHP_SELF"]);
  
$output bygSide("hej"$indhold);

}


/**
* Skriver ud til browseren
*/
echo $output;
exit;



/**************************************************\
**              Hjaelpefunktioner               **
\**************************************************/

function bygSide($titel$indhold) {

  
/**
   * Pakker indholdet ind i lidt formalia
   */
  
return '<html>
            <head><title>' 
$titel '</title></head>
            <body bgcolor="#ffffff">
              <div align="right"><a href="./">Tilbage til artiklen</a></div>
              ' 
$indhold '</body>
          </html>
         '
;

}

function 
bygFormular($action) {

  
$formular '<form action="' $action '" method="post"
enctype="multipart/form-data">
                 <table border="1" cellpadding="5" cellspacing="0">
                   <tr>
                     <td align="right" bgcolor="#999999"><b>Fil til upload:</b></td>
                     <td bgcolor="#cccccc"><input type="file" name="upfil" /></td>
                   </tr>
                   <tr>
                     <td colspan="2" align="middle" bgcolor="#dddddd"><input type="submit"
value="upload" /></td>
                   </tr>
                 </table>
               </form>
              '
;

  return 
"<h2>Upload fil:</h2>" $formular;

}

function 
listFiler($bibliotek) {

  if(
$bib = @opendir($bibliotek)) {
    
/** 
     * Denne syntaks er forklaret i PHP-manualen:
     * http://www.php.net/manual/en/function.readdir.php
     */
    
while (false !== ($fil readdir($bib))) {
      if(
$fil != "." && $fil != ".." && !ereg("^\..+"$fil)) {
          
$fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
      }
    }
    
closedir($bib);

    if(
is_array($fil_liste)) {
      
$liste "<li>" join("</li><li>"$fil_liste) . "</li>";
    } else {
      
$liste "<li>Ingen filer p&aring; lager</li>";
    }
    return 
"<h2>Filer p&aring; lager:</h2><ul>" $liste "</ul>";
  } else {
    die(
"Kunne ikke &aring;bne biblioteket: " $bibliotek);
  }

}

?> 

</body>
</html>

men når jeg uploader en fil siger den:

Warning: Cannot modify header information - headers already sent by (output started at
/var/www/hotserv.dk/users/158587/upload.php:10) in
/var/www/hotserv.dk/users/158587/upload.php on line 81

men når jeg går tilabge er filen korrekt uploadet, det er blot meddelesen, så mit
spørgsmål er nu- hvad er fejlen?!



Dato : 25.02.2006, 15:05

Visninger : 1982

Points : 150

 

Jeg har løst problemet, ingen indlæg tak.

Dato : 26.02.2006, 12:42

Kommentar af : esben bjerre  




Login for at skrive et indlæg :



   Brugernavn

Password
 

+ Opret en ny Bruger, Klik her

+ Glemt brugernavn/password

 

Send Artikel/anmeldelse til: phpuni@phpuniverset.dk

Tilbage til oversigt

© Copyright 2000 Propelcom Phpuniverset's politik om personlige oplysninger, artikler & Koder Phpuniverset er optimeret til Mozilla 1024 * 768 Phpuniverset version: 3.0 beta
Webhost : Ignesco.dk

Bund