Avatar billede webgon Nybegynder
25. marts 2005 - 13:05 Der er 24 kommentarer og
1 løsning

Upload system

Jeg har brug for et færdiglavet script der kan uploade alle slags filer uden begrænsninger mht. størrelsen. Man skal herefter kunne se en liste over filerne og have mulighed for at fjerne dem igen via et enkelt web-interface.

Nogle der har mod på at lave det eller ved hvor man kan downloade noget gratis? Må meget gerne være PHP.

Password begrænsning sørger jeg selv for.

/webgon
Avatar billede jaw Nybegynder
25. marts 2005 - 13:19 #1
Måske du kan starte med at lege lidt med det her:

forms.php
<?
    echo"
    <form method='post' action='upload.php' enctype='multipart/form-data'>
    <input type='file' name='upfile'>
    <input type='submit' value='Upload'>
    </form>
    ";
?>

upload.php
<?

    $dist = "./bruger_imgs/";

    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
        move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $_FILES['upfile']['name']);
    }
   
?>
Avatar billede jaw Nybegynder
25. marts 2005 - 13:20 #2
Din $dist skal du selvf. så bare sætte til det bibliotek du vil uploade til, der skal være chmod'et til 777 (eller lign).
Avatar billede webgon Nybegynder
25. marts 2005 - 13:25 #3
Tak for dit indlæg...

Skal måske lige siges at jeg er lidt mere PHP newbie end forventet. Det må meget gerne være et færdiglavet script jeg kan downloade et eller andet sted, og gerne indeholdende en side hvor man kan se en oversigt over filerne og slette dem.
Avatar billede webgon Nybegynder
25. marts 2005 - 13:25 #4
Jeg prøver at rode lidt rundt i de koder du skrev ;)
Avatar billede jaw Nybegynder
25. marts 2005 - 13:26 #5
Så skal du jo ikke spørge om der er nogen der har mod på at lave det - for det mener jeg da lige jeg gjorde?! Hvis du laver de filer jeg har skrevet burde der ikke være meget i det, men selvfølgelig halter det grafiske jo...

Men jeg dropper out så :)
Avatar billede webgon Nybegynder
25. marts 2005 - 13:28 #6
Skal jeg skrive den fulde sti til mappen på mit webhotel under $dist??

(har b-one så i mit tilfælde vil det være '/customers/webgon.net/webgon.net/httpd.www/MINMAPPE')
Avatar billede webgon Nybegynder
25. marts 2005 - 13:29 #7
Nej det er fint nok det du lavede.. :) Det grafikse er som sagt heller ikke det store problem. Det klarer jeg selv.
Avatar billede jaw Nybegynder
25. marts 2005 - 13:29 #8
nej, det skal bare være i forhold til www.domæne.dk - altså www.domæne.dk/minmapp => $dist = "./minmappe/";
Avatar billede sukos Juniormester
25. marts 2005 - 13:29 #9
Som "bilag" til jaw:

<html><head><title>Upload fil</title>
</head>
<body>
<center>
<?php

if(ini_get("file_uploads") == 1) { // Kan der uploades med PHP?


    echo"
    <b>Max. upload er ". min(ini_get("post_max_size"), ini_get("upload_max_filesize")) ."b.!</b><br>
    <form method='post' action='upload.php' enctype='multipart/form-data'>
    <input type='file' name='upfile'>
    <input type='submit' value='Upload'>
    </form>
    ";

}else{

echo"Hmm, upload er vist ikke tilladt?";

}
?>
</center>

</body></html>



upload.php
Hvis ikke $dist er et underdir, skal du definere den fulde sti, kan evt. gøres med:
$dist = $_SERVER["DOCUMENT_ROOT"] ."/nytdir/";
<?php

  $dist = "./bruger_imgs/";

    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
        move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $_FILES['upfile']['name']);
    }
?>

Og til visning af filer:

http://www.eksperten.dk/spm/599757
Avatar billede webgon Nybegynder
25. marts 2005 - 13:30 #10
Okay.. prøver lige at uploade det til mit webhotel
Avatar billede webgon Nybegynder
25. marts 2005 - 13:31 #11
Tak for begge jeres indlæg... tester lige lidt :)
Avatar billede jaw Nybegynder
25. marts 2005 - 13:32 #12
Tak Sukos - lidt teamwork er vel heller ikke af vejen - det var utestet og "usmukt" :)

Til visning vil mit bud være:

vis.php
<?
$handle=opendir('./');
while (false !== ($file = readdir($handle))) {
    if($file != "." && $file != "..") {
        echo "<a href='delete.php?file=".$file."'>".$file . "</a><br />";
    }
}
closedir($handle);

?>

delete.php
<?
    unlink($_GET['file']);
?>
Avatar billede webgon Nybegynder
25. marts 2005 - 13:35 #13
Det virker jo fint jaw :-) Men der mangler stadig den del hvor brugeren for vist en oversigt og har mulighed for at slette filer... Spørg endelig hvis jeg ikke har forklaret godt nok...
Avatar billede webgon Nybegynder
25. marts 2005 - 13:35 #14
hehe sorry.. havde ikke lige set forrige indlæg :) Tester lige lidt mere
Avatar billede jensgram Nybegynder
25. marts 2005 - 13:36 #15
Hvis du har mod på lidt tweaking, så kig forbi http://imv.au.dk/~jensgram/public/

Kilden kan ses på http://imv.au.dk/~jensgram/source.php?class.jgfilelist ,hvis det har interesse.

Systemet virker upåklageligt - i hvert fald så vidt jeg har testet.

- Jens Gram
Avatar billede jaw Nybegynder
25. marts 2005 - 13:36 #16
Med "mangler" må du lige sige om det er fordi mit/Sukos' forslag ikke er godt nok, eller ikke er testet endnu? :)
Avatar billede jensgram Nybegynder
25. marts 2005 - 13:37 #17
Hov!

Public-filen ser således ud

<public>
<?php

define('TPL_SUBDIR', '/public');
define('TPL_READ', true);
define('TPL_WRITE', false);
define('TPL_UNLINK', false);
define('TPL_LOGFILE', 'public.log');

require_once('template.php');

?>

Og template.php

<template.php>
<?php

require_once('class.jgfilelist.php');

$filelist = new JgFileList('/home/jensgram/Privat' . TPL_SUBDIR, $HTTP_SERVER_VARS['REQUEST_URI']);
if (isset($HTTP_SERVER_VARS['PATH_INFO']) == true && substr($HTTP_SERVER_VARS['PATH_INFO'], -1) == '/') {
    $filelist->SetDirectory($HTTP_SERVER_VARS['PATH_INFO'], '/home/jensgram/logs/' . TPL_LOGFILE, TPL_READ, TPL_WRITE, TPL_UNLINK);
    print $filelist->ShowFileList();
} else {
    $filelist->SendFile($HTTP_SERVER_VARS['PATH_INFO']);
}

?>
Avatar billede sukos Juniormester
25. marts 2005 - 13:37 #18
Mangler jo sikkert den "brugerslet" halløj, og der er detox' svar på http://www.eksperten.dk/spm/599757 vist nok lige sagen! :O)
Avatar billede webgon Nybegynder
25. marts 2005 - 13:42 #19
Det fungerer sådan set udemærket. Nu har jeg uploadet 'tdc_ny.gif' til mappen: http://webgon.net/uploads

men når jeg trykker på linket for at slette den via http://webgon.net/vis.php kommer denne fejl: 'Warning: unlink(tdc_ny.gif): No such file or directory in /customers/webgon.net/webgon.net/httpd.www/delete.php on line 2'

Hvad skal jeg gøre? Nu er det vist også ved at være på tide at poste et velfortjent svar ;) ?
Avatar billede jaw Nybegynder
25. marts 2005 - 13:45 #20
Det er nok bare et mappe-problem. Ligger delete.php i samme bibliotek som de filer du har uploadet?
Avatar billede webgon Nybegynder
25. marts 2005 - 13:46 #21
nej :) den ligger på roden af sitet :D skal jeg lægge delete.php ind i mappen?
Avatar billede webgon Nybegynder
25. marts 2005 - 13:50 #22
aha.. fandt ud af det nu :) eftersom jaw var først må points tilfalde dig. Tak for hjælpen alle sammen (lige et 'p.s.' - nu kommer filen "delete.php" jo også ind på listen over filer man kan slette.. hvad hvis jeg kommer til at slette den? kan man gøre så den ikke kommer med på listen?)
Avatar billede jaw Nybegynder
25. marts 2005 - 13:59 #23
Måske det her kan hjælpe dig: if($file != "." && $file != ".." && $file != "delete.php") { i vis.php

:)
Avatar billede jaw Nybegynder
25. marts 2005 - 14:00 #24
Så siger jeg mange tak...
Avatar billede webgon Nybegynder
25. marts 2005 - 14:02 #25
Det er mig der takker.. kigger lige lidt på det men tror jeg har fattet det nu :D
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