2012-04-05 8 views
0

Ich bin ein Neuling, also bitte sei nicht so hart zu mir. Das Konzept ist ziemlich einfach. Ich möchte, dass meine Benutzer einen bestimmten Bereich meiner Website sehen, in dem ein Screenshot auf ihrem Computer erstellt und auf meine Website hochgeladen wird.Bildschirm und Upload-Java-Klasse funktioniert lokal, aber nicht online. Keine Fehler, was auch immer. Was ist los mit dir?

Ich erhalte keine sichtbaren Fehler mit der Klasse online, aber ich vermute, dass etwas mit dem Upload-Teil nicht stimmt, da kein Screenshot img in meinem Konto gespeichert wird, wenn ich die Klasse hosten. Lokal ist der Pfad unten zu C:/wie jemand mir geholfen hat funktioniert gut. Wie bekomme ich es im Internet zu arbeiten?

import java.applet.*; 
import java.awt.AWTException; 
import java.awt.Rectangle; 
import java.awt.Robot; 
import java.awt.Toolkit; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
import java.net.*; 
import java.io.*; 
import javax.imageio.ImageIO; 

public class ScreenShot extends Applet { 

static boolean captureScreenShot(String uploadPath) 
{ 
boolean isSuccesful = false; 
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); 
BufferedImage capture; 
try { 
URL whatismyip = new URL("http://mysite.com/misc.php?page=showremoteaddr"); 
BufferedReader in = new BufferedReader(new InputStreamReader(
      whatismyip.openStream())); 

String ip = in.readLine(); //you get the IP as a String 
capture = new Robot().createScreenCapture(screenRect); 
// screen shot image will be save at given path with name "screen.jpeg" 
ImageIO.write(capture, "png", new File(uploadPath, ip + ".png")); 
isSuccesful = true; 
} catch (AWTException awte) { 
awte.printStackTrace(); 
isSuccesful = false; 
} 
catch (IOException ioe) { 
ioe.printStackTrace(); 
isSuccesful = false; 
} 
return isSuccesful; 
} 

public static void main(String [] args){ 
    String path = "/var/chroot/home/content/srvu/srvr/www"; 
    captureScreenShot(path); 
} 
} 
+0

Wie gebe ich Ihnen + rep^_^Vielen Dank für die Hilfe! – user1296537

+0

* "Ich bekomme keine sichtbaren Fehler mit der Klasse" * Überprüfen Sie die Java-Konsole? Ich bin mir sicher, dass es informativer sein wird (obwohl es scheint, dass Ernest das Problem bereits identifiziert hat). –

Antwort

2

Java-Applets, die aus dem Internet heruntergeladen wurden, sind nicht berechtigt, Screenshots aufzunehmen oder auf das Dateisystem zuzugreifen. Stellen Sie sich die enormen Sicherheitsprobleme vor, wenn sie es taten! Der Schlüssel zur Erlangung dieser Berechtigungen besteht darin, Ihr Applet digital zu signieren - ein relativ aufwändiger Prozess, der möglicherweise auch Geld kostet. Here ist eine kurze Anleitung zum Thema.

Auch Applets haben keine main() Routine - oder richtiger, wenn Sie ein Applet erstellen und geben Sie eine main() Methode, der Browser wird es nicht aufrufen. Der Code in Ihrem Applet läuft nie! Applets haben ihre eigenen Eintrittspunkte; Sie können die Grundlagen der Erstellung von ihnen lernen here.