[JAVA] file upload via apache

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Bas112
  • Registratie: Mei 2016
  • Laatst online: 27-07 20:40
Als PHP scripter is java een nieuwe tak van sport, waar ik ook zeker niet volledig in wil duiken (voor nu).
Echter was dit wel een goede opdracht om er voor nu even me in aanraking te komen.

Ik heb NetBeans gedownloads en de benodigde classes van Apache om te kunnen uploaden (FILE, Reply, CommandListener, FTP).

Ik heb nu de classes in dezelfde project map gezet als mijn main class en import ik ook direct, de classes worden echter niet betrokken binnen mijn 'main' document ?

code:
1
2
3
import PrintCommandListener;
import FTP;
import FTPClient;


Wat is het juiste path om aan te houden ?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Wat voor files heb je gedownload? Weet je zeker dat je geen libaries gedownload hebt? (.jar files)
Die moet je dan namelijk includen in je project met netbeans.

Vervolgens moet je deze libraries importen, bij de apache FTPClient library gaat dat op de volgende manier:

import org.apache.commons.net.ftp.*;

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • Bas112
  • Registratie: Mei 2016
  • Laatst online: 27-07 20:40
Afvalzak schreef op woensdag 18 mei 2016 @ 10:06:
Wat voor files heb je gedownload? Weet je zeker dat je geen libaries gedownload hebt? (.jar files)
Die moet je dan namelijk includen in je project met netbeans.

Vervolgens moet je deze libraries importen, bij de apache FTPClient library gaat dat op de volgende manier:

import org.apache.commons.net.ftp.*;
Afbeeldingslocatie: http://develop.advertentieplek.com/DSC_0006.JPG
Afbeeldingslocatie: http://develop.advertentieplek.com/DSC_0007.JPG
Is dit de juiste werkomgeving ?

EDIT; img wordt automatisch geroteerd (sorry)

[ Voor 9% gewijzigd door Bas112 op 18-05-2016 12:07 ]


Acties:
  • +2 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
basvandenhooff schreef op woensdag 18 mei 2016 @ 09:58:
Als PHP scripter is java een nieuwe tak van sport, waar ik ook zeker niet volledig in wil duiken (voor nu).
Ik kan je wel van harte aanraden even wat basistutorials te doen. Als je echt nul komma nul snapt gaat dit niet werken en het is voor anderen ook op dit moment weinig efficient om je dingen te leren.

Als je een externe library wil gebruiken moet je wel snappen hoe je die .jar aan je classpath toevoegt en hoe imports werken.

https://niels.nu


Acties:
  • +1 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Het is mogelijk om gewoon een printscreen te maken ipv een foto van je scherm hé;)

Ik denk dat je die FTP classes gewoon in dezelfde folder moet zetten als je main class (UploadBestand.java?) en dan kan je ze zonder import gebruiken, maar ik raadt je aan je in te lezen in wat een import in JAVA doet, hoe je externe libraries gebruikt enzovoorts.

Probeer eens een standaard library zoals java.math te gebruiken, misschien krijg je dan wat meer inzicht in hoe het werkt.

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Afvalzak schreef op woensdag 18 mei 2016 @ 12:45:
Ik denk dat je die FTP classes gewoon in dezelfde folder moet zetten als je main class (UploadBestand.java?) en dan kan je ze zonder import gebruiken, maar ik raadt je aan je in te lezen in wat een import in JAVA doet, hoe je externe libraries gebruikt enzovoorts.
Dat werkt dus gewoon niet.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Bas112
  • Registratie: Mei 2016
  • Laatst online: 27-07 20:40
Het ziet er nu zo uit:
code:
1
2
3
4
5
6
7
8
Source packages
+ test
|---- test
       |------ test.java
       |-------testGUI.java 

+ Libraries
|----- JDK 1.7


Het lijkt me dat het er zo uit moet zien (maar dat werkt niet) ?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Source packages
+ test
|---- test
       |------ test.java
       |-------testGUI.java 

+ Libraries
|----- JDK 1.7
|----- Apache
      |------ printCommandListener.java
      + FTP
      | - FTPFile.java
      | - FTPCLient.java
      | - FTPRepley

[ Voor 51% gewijzigd door Bas112 op 18-05-2016 13:20 ]


Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Hydra schreef op woensdag 18 mei 2016 @ 13:05:
[...]


Dat werkt dus gewoon niet.
Oh, ik heb nooit Netbeans gebruikt, maar dat stuk onder build is de inhoud van een geïmporteerde library?

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • Bas112
  • Registratie: Mei 2016
  • Laatst online: 27-07 20:40
@Hydra:
Afbeeldingslocatie: http://develop.advertentieplek.com/DSC_0008.JPG

Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:19
Zoals je op de laatste foto kunt zien is de naam van het package: apache.commons.net en apache.commons.net.ftp. Je zult de klasse dus moeten importeren met het correcte package, dus:
Java:
1
2
3
import apache.commons.net.ftp.FTP;
import apache.commons.net.ftp.FTPClient;
// e.d.


Daarbij heb je volgens mij aardig met de package naam lopen spelen, aangezien het oorspronkelijk org.apache.commons.net is. Je kunt het beter even opnieuw downloaden en importeren in je project, en vervolgen de correcte imports gebruiken. Ik gebruik NetBeans verder niet, maar volgens mij heeft dat ook een optie (die lijkt op) "Fix Imports".

Acties:
  • 0 Henk 'm!

  • Bas112
  • Registratie: Mei 2016
  • Laatst online: 27-07 20:40
Bedankt voor de reacties, ik ben redelijk klaar met de onbekende handelingen, ik moet er toch maar een keer echt vanaf het begin aan beginnen, echter heb ik nog wel steeds een stukje software nodig wat een bestand kan plaatsen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package shopleasing;

/**
 *
 * @author Gebruiker
 */

import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

public class ShopLeasing {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        // ftp://tom:secret@www.myserver.com/project/2012/Project.zip;type=i
        String ftpUrl = "ftp://-----:--------@------------------------------/Toevoeging;type=1";
        String host = "83.173.---.--";
        String user = "b--------";
        String pass = "d-------";
        String filePath = "C:\\org.rar";
        String uploadPath = "/org.rar";

        ftpUrl = String.format(ftpUrl, user, pass, host, uploadPath);
        System.out.println("Upload URL: " + ftpUrl);

        try {
            URL url = new URL(ftpUrl);
            URLConnection conn = url.openConnection();
            OutputStream outputStream = conn.getOutputStream();
            FileInputStream inputStream = new FileInputStream(filePath);

            byte[] buffer = new byte[BUFFER_SIZE];
            int bytesRead = -1;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }

            inputStream.close();
            outputStream.close();

            System.out.println("File uploaded");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    
}


Na wat onderzoek ben ik hier mee gekomen, er wordt verbinding gemaakt, en ingelogd.

byte[] buffer = new byte[BUFFER_SIZE];

Geeft een probleem, iemand enig idee ?

EDIT: excuus ik dacht dat BUFFER_SIZE een constante was...moest een integer zijn (1024)

Upload URL: ftp://gebruiker-wachtwoord@website/Toevoeging;type=1
File uploaded
BUILD SUCCESSFUL (total time: 1 second)

[ Voor 5% gewijzigd door Bas112 op 18-05-2016 16:27 ]


Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

BUFFER_SIZE moet je wel declareren ;)

Of 1024 in plaats van BUFFER_SIZE dan zal hij het ook doen.

Last.fm | Code Talks

Pagina: 1