0

私は初心者なので、私にあまり厳しくしないでください。概念は非常に単純です。ユーザーが自分のサイトの特定のセクションを表示し、スクリーンショットが自分のマシンにスナップされ、自分のサイトにアップロードされるようにしたいと考えています。

オンラインのクラスで目に見えるエラーは発生していませんが、クラスをホストするときにスクリーンショットの画像がアカウントに入力されていないため、アップロード部分に問題があると推測しています。ローカルでは、誰かが私を助けてくれたように、以下に C:/ に設定されているパスが正常に機能します。Web 上で動作させるにはどうすればよいですか?

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

1 に答える 1

2

インターネットからダウンロードした Java アプレットには、スクリーンショットを撮ったり、ファイルシステムにアクセスしたりする権限がありません。もしそうなら、莫大なセキュリティの問題を想像してみてください! これらのアクセス許可を付与するための鍵は、アプレットにデジタル署名することです。これは、かなり複雑なプロセスであり、費用もかかる可能性があります。このトピックに関する簡単なチュートリアルを次に示します。

また、アプレットにはルーチンがありません。main()より正確には、アプレットを作成してmain()メソッドを指定しても、ブラウザはそれを呼び出しません。アプレットのコードが実行されません! アプレットには、独自の一連のエントリ ポイントがあります。作成の基本はここで学ぶことができます。

于 2012-04-05T01:12:46.193 に答える