Avatar billede Aberdeen Nybegynder
22. juni 2011 - 18:34 Der er 1 kommentar

Upload filer til server/database og generer en html med visnig af filerner.

Hej alle sammen.

Lille forklaring:

Jeg er i gang med at lave et lille cms system hvor en bruger skal kunne uploade filer. jpg, png, gif, swf, pdf.
Disse filer skal lægges op på serveren og der skal sendes informationer til databasen(titel, filstørrelse, dato osv)
Når brugeren har uplaodet filerne skal der automatisk generes en php/html side som viser de filer der er blevet oploded.

Databasen er i MySQL og php version er den nyeste.

Spørgsmål:

1.
Som scriptet er lige nu skriver den ikke billed filens information ind i datebasen, hvad skal der til for at den gør dette?

2.
Hvad skal der til for at brugeren kan uploade flere filer på en gang?

3.
Er det muligt at give brugeren lov til selv at oprette en mappe til filerne?

4.
Når filerne er blevet oploadet hvad skal der til for at den generere et link(www.mitdomæne.dk/xxxxxxx.php/.html) og viser filerne?

Dette er ved jeg er kommet frem til ind til videre.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ (...)
<html xmlns="http://www.w3.org/ (...)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Uploade filer</title>
</head>

<body>


<h1>Uploade dine filer</h1>

<?php

include 'database_db_cnx.inc.php';

if(isset ($_POST['titel'])):

$titel=$_POST['titel'];
$dato=$_POST['dato'];
$beskrivelse=$_POST['beskrivelse'];
$info=$_POST['info'];
$pris=$_POST['pris'];
$redaktoer=$_POST['redaktoer'];
$ext_link=$_POST['ext_link'];
$ext_mail=$_POST['ext_mail'];
$billed_fil=$_POST['billed_fil'];

$sql="INSERT INTO uploade_int SET
    titel='$titel',
    dato='$dato',
    beskrivelse='$beskrivelse',
    info='$info',
    pris='$pris',
    ext_link='$ext_link',
    ext_mail='$ext_mail',
    billed_fil='$billed_fil' ";
 
    $max_size = 1048576; // 1MB
    $allowed_files = array("jpg", "png", "swf", "gif", "pdf"); //

 
 
    if( isset($_FILES["billed_fil"]) && $_FILES["billed_fil"]["size"] > 0 )
    {
     
   
        if( $_FILES["billed_fil"]["size"] > $max_size )
        {
            echo "Filen er for stor";
        }
        else
        {
       
            $file_ext = strtolower( end( explode(".", $_FILES["billed_fil"]["name"]) ) );
         
            if( !in_array($file_ext, $allowed_files) )
            {
                echo "Filen var ikke af den tilladte type";
            }
            else
            {
           
                $uploaddir = "upload/";
                $uploadfile = $uploaddir . $_FILES["billed_fil"]["name"];
             
                if( move_uploaded_file($_FILES["billed_fil"]["tmp_name"], $uploadfile) )
                {
                    echo "Filen blev gemt";
                }
                else
                {
                    echo "Filen kunne ikke gemmes - måske et problem med skriverettigheder";
                }
            }
        }             
    }
 
    echo "<div id='textblok'>";
 
 
    if(@mysql_query($sql)){
        echo "<div id='infoblok'>Der er oprettet en ny bog i databasen...</div>";}
        else {echo "<div id='infoblok'>Der opstod en fejl :" . mysql_error(). "</div>";}


?>

<div class="link"><a href="<?php echo $_SERVER['PHP_SELF']?>">Upload flere filer</a></div>
<div class="link"><a href="administration.php">tilbage til administrationssiden &gt;&gt;</a></div>
</div>

<?php else: ?>

<div id="textblok">

    <div id="infoblok">Udflyd disse felter for at uploade nye filer:</div>
 
    <form id="opret< nyt indhold" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="opret nyt indhold" enctype="multipart/form-data">
    <div id="formtitel">Titel</div>
    <input type="text" name="titel" size="24"/>
    <div id="formtitel">dato</div>
    <input type="text" name="dato" value="<?php echo date('d.m.Y')?>" size="24"/>
      <div id="formtitel">beskrivelse</div>
      <textarea name="beskrivelse" rows="4" cols="40"></textarea>
      <div id="formtitel">info</div>
      <textarea name="info" rows="4" cols="40"></textarea>
      <div id="formtitel">pris</div>
      <input type="text" name="pris" size="24" />
      <div id="formtitel">redaktoer</div>
      <input type="text" name="redaktoer" size="24" />
      <div id="formtitel">link til onlinebestilling</div>
      <input type="text" name="ext_link" size="24" />
      <div id="formtitel">link til ordre-mail</div>
      <input type="text" name="ext_mail" size="24"  />
      <div id="formtitel">Filer</div>
      <input type="file" name="billed_fil" />
      <input class="submit" type="submit" value="Send" />
       
    </form>
   
   
           



</div>
</div>
<?php endif; ?>
</body>
</html>

Jeg er stadig på fosterstadiet med php så er jeg helt galt på den med dette script? er det overhovedet muligt at gøre det jeg ønsker?

Håber der er en venlig sjæl der kan hjælpe mig lidt videre da jeg sidder lidt fast..
Avatar billede dab93 Nybegynder
26. juni 2011 - 11:23 #1
Sæt venligst dine koder ind i en kodeboks.
Gør dette således: (div)koderne her(/div) hvor du bare udskifter () med []
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