Avatar billede kovalt Nybegynder
26. september 2005 - 15:30 Der er 14 kommentarer og
1 løsning

Stifinder i browser

Hey

  Er der nogen der ligger inde med et lille java-program som kan installeres og giver besøgende mulighed for at tilgå deres lokale filer igennem en browoser.

  Jeg er i gang med at lave noget amin-halløj på et website, hvor der skal være mulighed for at uploade mange filer samtidigt. Jeg tænkte derfor om en af jer java-folk ligger inde med sådan en lille ting.

/Kovalt
Avatar billede kalp Novice
26. september 2005 - 15:35 #1
Avatar billede kovalt Nybegynder
26. september 2005 - 15:39 #2
meget muligt... jeg er ikke særlig stærk i java så jeg ved ikke om det lige præcis er den.

Jeg forstiller mig noget som dette:

http://asp01.photoprintit.de/microsite/10021/activexclient.php
Avatar billede kovalt Nybegynder
26. september 2005 - 15:43 #3
Jeg ved godt man kan bruge det i en java applikation men kan man også bruge den i en applet. Og hvis man kan hvordan foreslår du så du overfører billederne fra din applet til din server?
Avatar billede arne_v Ekspert
26. september 2005 - 15:45 #4
Brugeren skal acceptere at en applet for extra privs for at den kan tilgå
fil systemet på client PC.

Jeg lavede engang en lille upload applet som uploadede via HTTP til et
server side script.

Jeg kan godt poste det hvis du er interesseret.
Avatar billede kovalt Nybegynder
26. september 2005 - 16:01 #5
det vil jeg gerne se....
Avatar billede arne_v Ekspert
26. september 2005 - 16:09 #6
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

import javax.swing.*;

public class UploadManagerApplet extends JApplet implements ActionListener {
    private final static String UPLOAD_URL = "http://localhost/upload.asp";
    private JButton select;
    private JTextArea files;
    private JButton upload;
    private String dirname;
    private String[] filenames;
    public void init() {
        getContentPane().setLayout(new BorderLayout());
        select = new JButton("Select dir");
        select.addActionListener(this);
        getContentPane().add(select, BorderLayout.NORTH);
        files = new JTextArea();
        getContentPane().add(new JScrollPane(files), BorderLayout.CENTER);
        upload = new JButton("Upload");
        upload.addActionListener(this);
        getContentPane().add(upload, BorderLayout.SOUTH);
    }
    public void actionPerformed(ActionEvent ev) {
        if(ev.getSource() == select) {
            JFileChooser chooser = new JFileChooser(System.getProperty("user.home"));
            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            if(chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
                File dir = chooser.getSelectedFile();
                dirname = dir.getAbsolutePath();
                filenames = dir.list();
                StringBuffer sb = new StringBuffer("");
                for(int i = 0; i < filenames.length; i++) {
                    sb.append(filenames[i]);
                    sb.append("\r\n");
                }
                files.setText(sb.toString());
            }
        }
        if(ev.getSource() == upload) {
            for(int i = 0; i < filenames.length; i++) {
                upload(dirname, filenames[i]);
            }
        }
    }
    private void upload(String dirname, String filename) {
        try {
            URL url = new URL(UPLOAD_URL + "?filename=" + filename);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setRequestMethod("POST");
            con.setDoOutput(true);
            InputStream is = new FileInputStream(dirname + File.separator + filename);
            OutputStream os = con.getOutputStream();
            byte[] b = new byte[100000];
            int n;
            while((n = is.read(b)) >= 0) {
                os.write(b, 0, n);       
            }
            con.connect();
            if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
                //JOptionPane.showMessageDialog(this, filename + " uploaded");
            } else {
                JOptionPane.showMessageDialog(this, filename + " not uploaded");
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, filename + " not uploaded");
        }
    }
}
Avatar billede gybel Nybegynder
27. september 2005 - 10:57 #7
Hvis dit webhotel understøtter JSP/servlet så vil du kunne undgå at bruge en applet og derved heller ikke stille krav til klienten. Dette kan selvfølgelig også laves i PHP, ASP.Net osv.
Avatar billede arne_v Ekspert
27. september 2005 - 10:59 #8
JSP/servlet og "lokale filer" ??
Avatar billede gybel Nybegynder
27. september 2005 - 11:07 #9
Han snakker vel "lokale" på en webserver ellers tager jeg fejl?
Mener bare ikke der er den store fidus ved at uploade til localhost.
Avatar billede arne_v Ekspert
27. september 2005 - 11:09 #10
jeg læser det som at han vil have en applet embedded i en side som tillader
exploring af filsystem på client PC og nem upload af filer til server
Avatar billede gybel Nybegynder
27. september 2005 - 11:18 #11
I det tilfælde så vil jeg give dig ret i at en applet er bedste løsning. ;-)
Men burde du ikke bruge en servlet eller jsp side i stedet for din asp side til upload ;-) *joke*
Avatar billede kovalt Nybegynder
03. oktober 2005 - 10:21 #12
det er rigtigt arne_v - jeg kigger lige på din kode og vender tilbage
Avatar billede arne_v Ekspert
04. november 2005 - 20:05 #13
?
Avatar billede kovalt Nybegynder
06. november 2005 - 15:26 #14
jeg kan ikke selv kode i java - så jeg har fået en bekendt til at kigge på det - jeg har ikke glemt dig :-)
Avatar billede kovalt Nybegynder
16. marts 2006 - 22:44 #15
jeg lukker
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