Avatar billede .stx Nybegynder
01. august 2003 - 03:02 Der er 1 kommentar

upload progress bar

Davs

Den gang jeg var til asp, havde jeg lavet sådan en fin upload/download side, hvor man kunne se hvor meget man uploadede med og hvor mange procent man var nået.

Jeg er nu i gang med en ligende side i php, har fundet et script, man kan ikke compile php da jeg køre windows.

http://pdoru.from.ro/ fandt den via http://www.phpbuilder.com/mail/php-developer-list/2003061/0071.php

Hvis man bladre lidt frem og tilbage i replys står der noget med at der ville blive arbejedet på det så det kunne komme med i php ver 4.3.2 er der nogen der ved om dette er korrekt? evt. kunne komme med et script.

.sTX
Avatar billede .stx Nybegynder
01. august 2003 - 14:12 #1
Nu er jeg kommet så langt at jeg selv har lavet et script, problemet er bare at jeg ikke kan få filstrørrelsen på filen inden den bliver uploadet. Det gør at jeg ikke kan lave en statusbar eller skrive hvor mange procent der er uploadet.

------index.php START------
<?
    move_uploaded_file($file1, $_FILES[file1][name]);
?>
<HTML>
<HEAD>
<BODY OnUnload="progress_window.close();">
<FORM ACTION="<?$PHP_SELF?>" METHOD=post OnSubmit="window.open('progress.php', 'progress_window', 'width=350, height=120, menubar=no, statusbar=no, toolbar=no');" ENCTYPE="multipart/form-data">
<INPUT TYPE=file NAME=file1><BR>
<INPUT TYPE=submit VALUE="Upload">
</FORM>
</BODY>
</HTML>
------index.php SLUT------

------progress.php START------
<?
    $path = "D:\\uploadtemp\\";
    if (!$_REQUEST[filnavn]){
        $mydir = @opendir($path);
        while($fname = readdir($mydir)){
            if (!strstr(".", $fname) && !strstr("..", $fname)){
                $list_filer[] = filectime($path . $fname) . ";" . $fname;
            }
        }
        if ($list_filer){
            rsort($list_filer);
            foreach($list_filer AS $key => $value){
                $in_value = explode(";", $value);
                $tid = $in_value[0];
                $filnavn = $in_value[1];
            }
        }
    }
   
    $in_bytes = filesize($path . $_REQUEST[filnavn]);
    $sek = time() - $tid;
?>
<HTML>
<HEAD>
<TITLE>%</TITLE>
<SCRIPT LANGUAGE=JavaScript>
setTimeout("location.href='?filnavn=<?=$filnavn?>&tid=<?=$tid?>'", 100);
</SCRIPT>
</HEAD>
<BODY>
<?=round($in_bytes / 1024 / 1024, 2)?> mb
<BR>
<?
    if ($in_bytes >= 1 || $sek >= 1){
       
        $mbyte = round($in_bytes/$sek/1024/1024);
        $kbyte = round($in_bytes/$sek/1024);
        $byte = round($in_bytes/$sek);
        if ($kbyte >= 1024){
            ?><?=$mbyte?> mbyte<?
        }elseif ($byte >= 1024){
            ?><?=$kbyte?> kbyte<?
        }else{
            ?><?=$byte?> bytes<?
        }?>/sek<?
    }else{
        ?>0 kbyte/sek<?
    }
?>
</BODY>
</HTML>
------progress.php SLUT------

Nogle ider?

.sTX
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

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