Avatar billede fynbo Nybegynder
08. juni 2006 - 11:18 Der er 6 kommentarer

file upload (evt. via ftp)

Hej,

Jeg har ledt og ledt - også på eksperten - findes der ikke et gratis applet som ligner dette:

http://www.unlimitedftp.ca/products/uupload/

Altså en Browse-knap og en Send-knap og så sendes den valgte fil til serveren. Ikke så meget pjat med store grafiske interfaces?

Noget der er stødt på dette? :-)
Avatar billede arne_v Ekspert
08. juni 2006 - 14:10 #1
jeg lavede engang denne applet til et andet spørgsmål:

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");
        }
    }
}

bemærk at den dog kalder et upload script. Men den kan nemt ændres til at bruge FTP
(Jakarta Commons Net har et godt FTP lib)
Avatar billede arne_v Ekspert
08. juni 2006 - 15:47 #2
FTP snippet:

        FTPClient client = new FTPClient();
        try {
            client.connect("localhost");
            client.login("anonymous", "arne@");
            InputStream is = new FileInputStream("C:\\z.zip");
            client.setFileType(FTPClient.BINARY_FILE_TYPE);
            OutputStream os = client.storeFileStream("z.zip");
            byte[] b = new byte[1000];
            int n;
            while((n = is.read(b)) >= 0) {
                os.write(b,0,n);
            }
            os.close();
            is.close();
            client.disconnect();
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
Avatar billede fynbo Nybegynder
12. juni 2006 - 16:08 #3
har ikke den store erfaring med java, har du det eventuelt samlet og klar til brug. Eventuelt mod en lille betaling?
Avatar billede fynbo Nybegynder
12. juni 2006 - 16:43 #4
hej.. har købt noget software fra http://www.somethingjava.com så det er ikke længere relevant.

smid  et svar, så får du point :)
Avatar billede arne_v Ekspert
12. juni 2006 - 18:36 #5
ok
Avatar billede arne_v Ekspert
09. juli 2006 - 03:31 #6
så mangler du bare at acceptere svaret
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