Toon posts:

[JAVA] download en sla op

Pagina: 1
Acties:

Verwijderd

Topicstarter
hey tweakers,

Ik wil in een java-applet een code plaatsen die het volgende doet: een bestand vanaf het internet kopieeren naar de hardeschijf. het volgende heb ik al geprobeerd met een commando:
Java:
1
Runtime.getRuntime().exec("wget -O c:\\file.jpg http://www.site.com/file.jpg")

Alleen hier is het probleem dat je een plugin voor Runtime() moet installeren.

Ik wil de applet in een internet pagina plaatsen, de applet sign ik dan ook. daarmee wil ik een bestand van http://www.site.com/file.jpg kopieren naar c:\file.jpg

Wie weet hiervoor een manier hoe ik dat kan proberen?

Alvast bedankt 8)

[ Voor 3% gewijzigd door Verwijderd op 24-04-2003 18:23 . Reden: schoonheidsfoutje ]


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20:58

Robtimus

me Robtimus no like you

De applet wordt op de client machine uitgevoerd. Het is dan ook naief te denken dat wget overal werkt. Java heeft daar zelf toch vast wel wat voor? Kijk eens in de API of zo.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

N.a.v. de sluitmessage in je vorige topic, [rml][ JAVA] iets downloaden[/rml], wat heb je geprobeerd?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20:58

Robtimus

me Robtimus no like you

Wat potatoman al zei in je vorige topic, kijk eens goed naar java.net.URL, en dan vooral de openStream method

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

Heeft de java VM voor applets geen beperkingen mbt. bestandstoegang? Volgens mij is het zo dat je geen bestanden kan schrijven vanuit een applet vanwege veiligheidsrisico's. Dus bestanden kopieren zal dan ook niet lukken. Weet iemand hier meer van af?

The hardest thing in the world to understand is the income tax. - Albert Einstein


  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 21-08 16:35
Je kan idd geen bestanden schrijven direct naar de HD vanuit een java-applet. Minimum wordt eerst de gebruikers toestemming gevraagd of zoiets. Je gaat dit waarschijnlijk gebruiken in een website om je nieuwe trojan te downen zeker ;)

Pandora FMS - Open Source Monitoring - pandorafms.org


Verwijderd

esf schreef op 24 april 2003 @ 18:37:
Heeft de java VM voor applets geen beperkingen mbt. bestandstoegang? Volgens mij is het zo dat je geen bestanden kan schrijven vanuit een applet vanwege veiligheidsrisico's. Dus bestanden kopieren zal dan ook niet lukken. Weet iemand hier meer van af?
Da's waar, zie http://java.sun.com/sfaq/#allowWrite

  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

Dank je, dat was wat ik zocht :) Ik kon het al niet vinden..

The hardest thing in the world to understand is the income tax. - Albert Einstein


Verwijderd

Topicstarter
bezoekers krijgen eerst een security warning, deze is te accepteren. als deze geaccpeteerd wordt heeft java alle rechten. Ik wil geen trojans uploaden. ik zal uitleggen waar ik het wel voor wil hebben:
Wat ik echt wil is, dat ik met een applet (mogelijk gesignt) een bestand van internet bij de client op de harde schijf te plaatsen.
Je denkt waarschijnlijk dat ik nu hack of spy software wil uploaden. dit wil ik echter niet. Op onze site komt een spel te staan die gebruikt maakt van een IRC server. Dit is gemaakt in flash, Maar de flash kon geen data lezen. Daarvoor had ik iets in java geprogrammeerd waardoor het nu wel werkt. geen probleem verder. . dat was opgelost. maar nu het volgende probleem: Flash mag niet connecten met een andere server dan waar hij vandaan komt. Daar hadden wij de volgende oplossing voor: we plaatsen een klein .swf'je met een socket connectie bij de client op de harde schijf. Dat domain is dan gelijk aan die localhost van de java-applet. In die kleine .swf'je wordt weer de main-swf van onze site ingevoegt. het probleem was alleen, hoe krijgen we dat kleine .swfje op de harddisk-> een applet die dat upload.

  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

Ok maar kan je dan niet gewoon het bestand kopieren met input- en outputstreams? Dus het bestand via een inputstream binnenhalen vanaf het internet (wordt via socketcommunicatie denk ik dan) en daarna met een outputstream naar de schijf schrijven..

The hardest thing in the world to understand is the income tax. - Albert Einstein


  • PommeFritz
  • Registratie: Augustus 2001
  • Laatst online: 10-07 04:13

PommeFritz

...geen friet

Ik heb geen verstand van flash maar wat je wilt doen klinkt wel bewerkelijk... is er geen andere oplossing mogelijk? Kun je een flash ding niet singnen ofzo of van meer rechten voorzien? Of kun je een java applet maken die wel een socket connectie kan opzetten naar een andere server en dan vanuit die flash naar de (lokale) java applet connecten?

FireFox - neem het web in eigen hand


Verwijderd

Topicstarter
ik heb nu dit:

Java:
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
import java.net.*;

import java.io.*;

public class autodownload

{

URL u = null;

URLConnection uc =null;

InputStream in = null;

static final public void main(String[] args) throws IOException

{

autodownload t = new autodownload();

t.run();

System.out.println("yo");

}

public void run() throws IOException

{


u = new URL("http://216.110.45.121/www.webfanaat.com/index.php");

uc=u.openConnection();

DataInputStream in = new DataInputStream(new BufferedInputStream(uc.getInputStream()));

PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("C:\\test\\file.php")));

String n = null;


while((n = in.readLine()) != null){

writer.write(n);

}

writer.close();

System.out.println("klaar");

}

}


Het werkt wel!, maar dan alleen voor ASC2 (vandaar die php pagina) op plaatjes werktie niet, net wat ik wil hebben. wie kan mij een riochtlijn geven?

  • PommeFritz
  • Registratie: Augustus 2001
  • Laatst online: 10-07 04:13

PommeFritz

...geen friet

geen printwriter gebruiken en niet met readLine werken, maar eventueel byte voor byte inlezen en wegschrijven

FireFox - neem het web in eigen hand


Verwijderd

Topicstarter
ik zou niet weten hoe. Zou je me de commando's kunnen geven om het byte-voor-byte te kunnen lezen, en byte-voor-byte kunnen wegschrijven geven?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20:58

Robtimus

me Robtimus no like you

Kijk gewoon in de API naar InputStream en OutputStream.

[ Voor 20% gewijzigd door Robtimus op 24-04-2003 22:56 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20:58

Robtimus

me Robtimus no like you

/edit: weggehaald

[ Voor 96% gewijzigd door Robtimus op 24-04-2003 22:46 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
En mijnheer IceManX mag zijn mail zodadelijk gaan controleren.
Het moge duidelijk zijn dat we niet zitten te wachten op zulk soort sfeerverpestende flame's :/

  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

Kan je niet zoiets doen als:

Java:
1
2
3
4
while ((next = in.read()) != -1)
{
    out.write(next);
}

The hardest thing in the world to understand is the income tax. - Albert Einstein


Verwijderd

Topicstarter
esf, dat werkt niet, Eclipse geeft een error daarbij. Maar dat boeit niet! Het werkt namelijk al. Ik heb het advies van PommeFritz gevolgd, en de code een stuk veranderd. En het werkt. Een slotje graag mods!
Pagina: 1