Avatar billede biskoppen Nybegynder
03. januar 2005 - 16:36 Der er 29 kommentarer og
1 løsning

Applet der kan kopiere filer fra server til f.eks. skrivebord?

Findes det?
Avatar billede arne_v Ekspert
03. januar 2005 - 18:17 #1
Koden er ret nem at lave.

Men du skal have applet klasserne i en signed jar fil og client maskinerne skal
kende dit certifikat for at en applet for lov til at røre skrivebordet.
Avatar billede biskoppen Nybegynder
03. januar 2005 - 18:27 #2
Jeg skal bruge en færdig applet
Avatar billede arne_v Ekspert
03. januar 2005 - 19:42 #3
Jeg kan også sagtens lave den til dig. Færdig.

Men kan du bruge den til noget ? Jeg kan jo ikke rende rundt til alle
dine client PC'ere og installere certifikat ! Det kan du måske eller
måske ikke lidt afhængig af om det er internet eller intranet.
Avatar billede biskoppen Nybegynder
03. januar 2005 - 19:46 #4
Det jeg har brug for er en applet som man kan kalde med en komma separeret streng som paramterte der f.eks. er "http://www.blabla.com/billede1.jpg", "http://www.blabla.com/billed2.jpg", etc etc..

Appletten skal så spørge om hvorhenne på den lokale maskine den skal placere filerne

Såfremt du kan lave mig en faktura og er rimelig så vil jeg gerne betale en skilling for den
Avatar billede arne_v Ekspert
04. januar 2005 - 21:30 #5
Jeg skal nok lave appletten. Også for 199 point.

Men har du styr på hvordan du vil få givet applet koden de privs hos
dine brugere/kunder ?

(og husk der er forskel på MS JVM 1.1 og SUN JVM 1.2+ !)
Avatar billede biskoppen Nybegynder
04. januar 2005 - 22:05 #6
Nej.. jeg aner intet om det... jeg troede blot at appletten ville poppe op med et certifikat man skulle godkende?
Avatar billede arne_v Ekspert
04. januar 2005 - 22:19 #7
Med SUN JVM 1.2+ skal certifikatet ihvertfald være læst ind på client
maskinen.

Jeg kan ikke huske hvordan det er med SUN JVM 1.1, men jeg tror at det er der
samme.
Avatar billede biskoppen Nybegynder
04. januar 2005 - 22:32 #8
Ok. Men go ahead. :) Og pointene er dine
Avatar billede arne_v Ekspert
04. januar 2005 - 22:35 #9
Jeg kigger på det.

Imorgen.

NB: Hvis du kan signe det med et rigtigt certifikat udstedt af Verisign, Thawte
eller lignende, så tror jeg ikke at certifikatet skal ligges ind - de genkendes
automatisk.
Avatar billede biskoppen Nybegynder
04. januar 2005 - 22:37 #10
Ok. Jeg takker - og ser frem til hvad du kommer frem med
Avatar billede arne_v Ekspert
05. januar 2005 - 19:28 #11
DownloadApplet.java
-------------------

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
import java.net.*;
import java.util.*;

public class DownloadApplet extends Applet implements ActionListener {
    private Vector urls = new Vector();
    private TextArea list = new TextArea();
    private Button download = new Button();
    public void init() {
        int n = 1;
        String urlstr;
        while((urlstr = getParameter("url" + n)) != null) {
            urls.addElement(urlstr);
            n++;
        }
        list.setColumns(60);
        list.setRows(20);
        list.setText("");
        for(int i = 0; i < urls.size(); i++) {
            list.append((String)urls.elementAt(i) + "\r\n");
        }
        download.setLabel("Download");
        download.addActionListener(this);
        add(list, null);
        add(download, null);
        this.setSize(500, 400);
        setVisible(true);
    }
    public void actionPerformed(ActionEvent ev) {
        for(int i = 0; i < urls.size(); i++) {
            String urlstr = (String)urls.elementAt(i);
            String fnm = urlstr.substring(urlstr.lastIndexOf("/") + 1);
            download(urlstr, fnm);
        }
    }
    private void download(String urlstr, String fnm) {
        try {
            String dir = System.getProperty("java.io.tmpdir");
            dir = dir.substring(0, dir.length() - 1);
            dir = dir.substring(0, dir.lastIndexOf(File.separator));
            dir = dir.substring(0, dir.lastIndexOf(File.separator) + 1);
            dir = dir + "Desktop";
            URL url = new URL(urlstr);
            HttpURLConnection con = (HttpURLConnection)url.openConnection();
            con.connect();
            if(con.getResponseCode() == HttpURLConnection.HTTP_OK) {
              InputStream is = con.getInputStream();
              OutputStream os = new FileOutputStream(dir + File.separator + fnm);
              byte[] b = new byte[100000];
              int n;
              while((n = is.read(b)) >= 0) {
                  os.write(b,0,n);
              }
              os.close();
              is.close();
            }
            con.disconnect();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

download.html
-------------

<applet codebase="." code="DownloadApplet.class" archive="DownloadApplet.jar" width="500" height="400">
<param name="url1" value="http://localhost/upload.html">
<param name="url2" value="http://localhost/download.html">
</applet>
Avatar billede arne_v Ekspert
05. januar 2005 - 19:29 #12
Ovenstående virker med SUN JVM

sign DownloadApplet arne

og load af arne.cer

build.bat
---------

javac -%1.java
jar cvf %1.jar %1.class
keytool -genkey -keystore %2.jks -alias %2
keytool -export -keystore %2.jks -alias %2 -file %2.cer
jarsigner -keystore %2.jks %1.jar %2
Avatar billede biskoppen Nybegynder
05. januar 2005 - 20:16 #13
Fremragende, kan jeg ikke få dig til at sende en færdigrendered applet til

michael[snabela]wickedvikings.com ?
Avatar billede arne_v Ekspert
05. januar 2005 - 22:47 #14
ZIP med .html og .jar sendt

smid begge i samme directory på web serveren, ret download.html og test på en maskine
hvor der er installeret SUN Java
Avatar billede arne_v Ekspert
05. januar 2005 - 22:47 #15
og et svar
Avatar billede biskoppen Nybegynder
05. januar 2005 - 23:27 #16
Jeg siger mange tak Arne
Avatar billede biskoppen Nybegynder
06. januar 2005 - 01:35 #17
Hej Arne

Jeg kan ikke få det til at virke.. har nyeste SUN Java på maskinen

Jeg får fint appletten frem med det der ligner et textarea hvori jeg kan fylde URL'er.. men når jeg klikker download sker der intet
Avatar billede arne_v Ekspert
06. januar 2005 - 07:34 #18
Check Java console for fejl meddelelser.

Enten så skal du have certifikatet eller så er det engelsk versus dansk Windows
som driller.
Avatar billede biskoppen Nybegynder
06. januar 2005 - 12:23 #19
(Vi har prøvet på W2000 server og XP) Begge engelske

Der kommer vidst ingen fejl der, dette er alt hvad der står :

--------------------------------------------------------------------

Java(TM) Plug-in: Version 1.4.2_06
Using JRE version 1.4.2_06 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\Administrator

Proxy Configuration: Browser Proxy Configuration





----------------------------------------------------
c:  clear console window
f:  finalize objects on finalization queue
g:  garbage collect
h:  display this help message
l:  dump classloader list
m:  print memory usage
o:  trigger logging
p:  reload proxy configuration
q:  hide console
r:  reload policy configuration
s:  dump system properties
t:  dump thread list
v:  dump thread stack
x:  clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------
Avatar billede arne_v Ekspert
06. januar 2005 - 19:28 #20
Hov.

Du skal ikke udfylde URL'er i det text area.

Du skal angive URL'er i param tags.

Download funktionen læser ikke fra textarea overhovedet.

(måske skulle jeg gøre sådan at man ikke kunne skrive der)
Avatar billede biskoppen Nybegynder
06. januar 2005 - 19:53 #21
Hej Arne

Ok, det har jeg også prøve nu (kun at angive dem som parametre, virker stadigt ikke)

Hvis du har ICQ så kan du kontakte mig den vej, så kan vi se om vi i fællesskab kan få skidtet til at virke - og naturligvis skrive hvad problemet var i denne tråd

ICQ : 30898463
Avatar billede arne_v Ekspert
06. januar 2005 - 19:54 #22
Ingen ICQ eller anden IM kun email.
Avatar billede biskoppen Nybegynder
06. januar 2005 - 19:55 #23
Hov, det virker sgu! :)

Men jeg ville meget gerne have det hvis den kunne prompte mig inden den download og spørge mig hvor den skal gemme det

(Derfor jeg ikke har set det virke, da den bare har downloadet dem uden man har kunne se den gøre det)
Avatar billede biskoppen Nybegynder
06. januar 2005 - 19:57 #24
Det er ikke godt den blot smider dem på skrivebordet nemlig, da jeg skal bruge det til at downloade 100vis af filer med
Avatar billede biskoppen Nybegynder
06. januar 2005 - 19:58 #25
En løsning jeg bedre ville kunne lide er hvis du kan tilfølge et folder parameter .. den skal så oprette den mappe på skrivebordet og download dertil, det må være nemt ikke?
Avatar billede biskoppen Nybegynder
06. januar 2005 - 19:59 #26
Appletten ville være endnu mere lækker hvis den også fortalte hvilken fil den var igang med og kom med en alert('Done downloading..'); når den er færdig

Jeg ved godt jeg gir den gas ;)
Avatar billede arne_v Ekspert
06. januar 2005 - 20:42 #27
Jo man kan godt lave det så der kan angives en folder.

Grunden til at det blev desktop er spørgsmålets overskrift !  :-)
Avatar billede arne_v Ekspert
06. januar 2005 - 20:43 #28
Der kommer en zweiter sehr verbesserte versione senere i aften eller imorgen.
Avatar billede arne_v Ekspert
07. januar 2005 - 08:01 #29
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;

import javax.swing.*;

public class DownloadApplet extends JApplet implements ActionListener {
    private ArrayList urls;
    private JTextField dir;
    private JTextArea list;
    private JButton download;
    public void init() {
        setSize(500, 400);
        getContentPane().setLayout(new BorderLayout());
        // get URL's
        urls = new ArrayList();
        int n = 1;
        String urlstr;
        while((urlstr = getParameter("url" + n)) != null) {
            urls.add(urlstr);
            n++;
        }
        // setup text field
        dir = new JTextField("C:\\");
        getContentPane().add(dir, BorderLayout.NORTH);
        // setup panel
        list = new JTextArea();
        list.setText("");
        for(int i = 0; i < urls.size(); i++) {
            list.append((String)urls.get(i) + "\r\n");
        }
        getContentPane().add(new JScrollPane(list), BorderLayout.CENTER);
        //setup button
        download = new JButton("Download");
        download.addActionListener(this);
        getContentPane().add(download, BorderLayout.SOUTH);
        // done
        setVisible(true);
    }
    public void actionPerformed(ActionEvent ev) {
        for(int i = 0; i < urls.size(); i++) {
            String urlstr = (String)urls.get(i);
            String fnm = urlstr.substring(urlstr.lastIndexOf("/") + 1);
            if(dir.getText().charAt(dir.getText().length() - 1) != File.separatorChar) {
                fnm = dir.getText() + File.separator + fnm;
            } else {
                fnm = dir.getText() + fnm;
            }
            download(urlstr, fnm);
        }
    }
    private void download(String urlstr, String fnm) {
        try {
            URL url = new URL(urlstr);
            HttpURLConnection con = (HttpURLConnection)url.openConnection();
            con.connect();
            if(con.getResponseCode() == HttpURLConnection.HTTP_OK) {
              InputStream is = con.getInputStream();
              OutputStream os = new FileOutputStream(fnm);
              byte[] b = new byte[100000];
              int n;
              while((n = is.read(b)) >= 0) {
                  os.write(b,0,n);
              }
              os.close();
              is.close();
            }
            con.disconnect();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        JOptionPane.showMessageDialog(this, fnm + " downloaded");
    }
}
Avatar billede biskoppen Nybegynder
07. januar 2005 - 13:31 #30
Hej Arne

Vi takker mange gange..

Jeg gemmer din email til hvis vi en dag behøver noget mere og vildere - så vil vi meget gerne betale dig for det

Mvh
Michael
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
Kurser inden for grundlæggende programmering

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