Avatar billede jiv Nybegynder
10. maj 2011 - 21:07 Der er 4 kommentarer og
1 løsning

Java script for download

Hej.

Jeg har en hjemmeside som er delt i en højre og venstre frame.
I venstre side har jeg 10 forskellige ord som definere deres biblioteker. Meningen er så at når man trykker på et af mapperne i venstre side skal indholdet komme frem i højre frame.
Filerne er af alle mulige slags.
Herefter skal det være muligt at downloade den fil man trykker på i højre frame.

Hvis der er en der forbarmer sig over mig, må jeg hellere lige sige, at jeg intet kender til scripts så derfor har jeg brug for god forklaring til hvor, hvad jeg skal indsætte når vi kommer til det med at indsætte host navn og path.


M.v.h.
JIV
Avatar billede kjeldsted Novice
11. maj 2011 - 01:18 #1
Til at starte med: Når et spørgsmål bliver flyttet til en anden kategori skal den første dels lukkes, og der skal desuden refereres til det nye spørgsmål. Hér tænker jeg på http://www.eksperten.dk/spm/938447

Men når det så er sagt:

For at være 110% med på hvad det er du vil.
I venstre side har jeg 10 forskellige ord som definere deres biblioteker. Meningen er så at når man trykker på et af mapperne

Hér referere du både til 'ord' og 'mapper'. Menes der det samme hér?

Og en sidste ting. Bare for at være med. Har du kodet JS før?
Avatar billede jiv Nybegynder
13. maj 2011 - 23:36 #2
Hej og undskyld.
Jeg er nu klar over at man ikke må have det samme spørgsmål 2 steder, men da jeg ikke ved om den skal laves i PHP eller JAVA script, hvad gør man så ?

Citat: Har du kodet før ?
Nej hverken i Java eller PHP, jeg kan godt redigere lidt i det, men kan overhovedet ikke skrive noget selv.

Derfor har jeg også udlovet 200 point, da jeg forventer en temmelig "Færdig" løsning.

Citat: Hér referere du både til 'ord' og 'mapper'. Menes der det samme hér?
Ja det kan man godt sige. Til de ord der står i venstre frame, er der oprettet en mappe på serveren med samme navn.

I venstre side/frame har jeg 10 forskellige ord som, når man trykker på et af ordene, skal åbne den mappe i højre frame, som har det samme navn som det ord man trykkede på.
Meningen er så at når man trykker på et af navne i venstre side, skal indholdet af dens mappe komme frem i højre frame.
Filerne er af alle mulige slags, dog ikke .exe .bat og .com filer.
Herefter skal det være muligt, blot ved at klikke på den fil man vil downloade og filen hentes på en eller anden måde ned til egen computer.

Skulle måske lige nævne, at jeg anvender en SQL database på one.com serveren til Login tilladelse. Har ingen anelse, om det får nogen betydning for denne tråd.

Håber det gav lidt mere mening.

Mvh
jiv

Ps./  Øøh, skal jeg lukke denne tråd, indtil jeg finder ud af om løsningen skal findes i et PHP script.
Tråd for PHP løsning http://www.eksperten.dk/spm/938447
Avatar billede kjeldsted Novice
14. maj 2011 - 00:00 #3
Hm. Grunden til jeg oprindeligt foreslog JS (IKKE JAVA! Der er forskel) var at med JS kan man jo lave det hele dynamisk, mens det vil blive meget statisk hvis det kodes 100% i PHP.

Men det var vist før jeg forstod 100% hvad det var du ville. For må indrømme at den eneste gang jeg har brugt folder browsing i JS er dels med lokale mapper og så med ActiveX. Og tvivler på at du vil bruge ActiveX.

Lige som jeg ser det er der to muligheder:

1. En statisk 100% PHP løsning der kræver at hele vinduet opdateres når der klikkes på en mappe.

2. En blanding med PHP til statisk at hente indholdet af mappe oversigten samt dynamisk at hente indholdet af højre vindue via en ekstern PHP fil, hvor JS loader via. XMLhttp.

Løsning 1. er klart nemmest mens løsning 2. burde være hurtigst samt pænest.
Avatar billede kjeldsted Novice
14. maj 2011 - 00:02 #4
Og desuden. Med begge disse løsninger kan du i stedet for frames benytte <div>. Hvilket kan anbefales.
Avatar billede jiv Nybegynder
19. maj 2011 - 23:55 #5
Hej.

Jeg har nu fået noget stykket noget sammen, som virker som tænkt.
Nu har jeg en PHP kode til upload og en til download.

I får lige koderne her.
Håber nogen måske også kan anvende den.

Mvh.
jiv



Download af fil fra web server til egen computer PHP koden.
For at downloade en fil skal der højre-klikkes på filen og vælges "Gem fil" man kan altså ikke bare trykke på den, for så vil filen forsøge at starte.
-------------------------------------------------------------
<body bgcolor="#DFD2B3"> // Dette er blot for at få lidt farve på siden.
<?php


$dir = "2000"; // Biblioteket som jeg downloade fra

$directories = array();
$files = array();
$dir = (substr($dir, -1) == '/') ? substr($dir, 0, -1) : $dir;
if(is_dir($dir)){
    if($handle = opendir($dir)){
        while(false !== ($file = readdir($handle))){
            if($file != "." && $file != ".."){
                if(is_dir($dir.'/'.$file)){
                    $directories[$file] = filemtime($dir.'/'.$file);
                } else {
                    $files[$file] = filemtime($dir.'/'.$file);
                }
            }
        }
        closedir($handle);
    } else {
        die('Could not open directory.');
    }
} else {
    die('Invalid directory.');
}

if($_GET['sort'] == 'alpha'){
    if($_GET['mode'] == 'desc'){
        krsort($files);
        $highlight = 'alpha_desc';
    } else {
        ksort($files);
        $highlight = 'alpha_asc';
    }
} else {
    if($_GET['mode'] == 'asc'){
        asort($files, SORT_NUMERIC);
        $highlight = 'date_asc';
    } else {
        arsort($files, SORT_NUMERIC);
        $highlight = 'date_desc';
    }
}
$sort_alpha_asc = ($highlight == 'alpha_asc') ? '<b>Asc</b>' : '<a href="?sort=alpha&mode=asc">Asc</a>';
$sort_alpha_desc = ($highlight == 'alpha_desc') ? '<b>Desc</b>' : '<a href="?sort=alpha&mode=desc">Desc</a>';
$sort_date_asc = ($highlight == 'date_asc') ? '<b>Asc</b>' : '<a href="?sort=date&mode=asc">Asc</a>';
$sort_date_desc = ($highlight == 'date_desc') ? '<b>Desc</b>' : '<a href="?sort=date&mode=desc">Desc</a>';
echo "Sort by: Date- $sort_date_asc | $sort_date_desc; Name- $sort_alpha_asc | $sort_alpha_desc<br />\n<br />\n";

echo "<table border=\"0\">\n<tr><td><u>File</u></td><td width=\"25\"></td><td><u>Size</u></td><td width=\"25\"></td><td><u>Last Modified</u></td></tr>\n";
foreach($files as $file => $timestamp){
    echo "<tr><td><a href=\"$dir/$file\">$file</a></td><td></td><td>";
    $filesize = filesize($dir.'/'.$file);
    if($filesize >= 1048576){
        echo round($filesize / 1048576, 1).'MB';
    } else {
        echo round($filesize / 1024, 1).'kb';
    }
    echo '</td><td></td><td>'.date('M d Y H:i:s', $timestamp)."</td></tr>\n";
}
echo '</table>';

?>



-------------------------------------------------------------
I får lige koden her. Upload af fil fil web server PHP koden.

Det er lavet i PHP og filen skal gemmes som "Upload2000.php" da den bliver kaldt igen nede i bunden af scriptet i //Vores form
Den kan naturligvis hedde noget andet, bare man så ændre navnet nede i bunden, hvor den kaldes igen.
------------------------------------------


<body bgcolor="#DFD2B3">

<?php
$uploadDir = '2000/'; //Bibliotek hvor filer uploades til - husk chmod 777 på de mapper der skal uploades til på serveren.
$allowedFileTypes = array('jpg','gif','png','doc','txt'); //Hvilke filer vil jeg acceptere bliver uploadet?

//Er der trykket på Upload file knappen?
if(isset($_POST['myUpload']))
{
  //Har vi en fil?
  if(is_uploaded_file($_FILES['myFile']['tmp_name']))
  {
    //Filendelse
    $extension = strtolower(pathinfo($_FILES['myFile']['name'],PATHINFO_EXTENSION));
   
    //Er filen en af de filer vi gerne vil have?
    if(in_array($extension,$allowedFileTypes))
    {
      //Vi flytter filen fra tmp til vores UPLOADDIR
      if(move_uploaded_file($_FILES['myFile']['tmp_name'],$uploadDir . basename($_FILES['myFile']['name'])))
      {
        echo '<h3 style="color:green;">File ('.basename($_FILES['myFile']['name']).') uploaded succesfully</h3>';
      }
      else
      {
        echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['myFile']['name']).'</h3>';
      }
    }
    else
    {
      echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>';
    }
  }
  else
  {
    echo '<h3 style="color:red;">Du mangler vist at vælge en fil til upload !</h3>';
  }
}

//Vores form
echo '<form action="upload2000.php" method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile"><br />';
echo '<input type="submit" name="myUpload" value="Upload file">';
echo '</form>';

?>
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