2012-01-05 23 views
1

javascript/HTAを使用して、画像コピーをクリップボードにコピーしてHDD上のファイルに貼り付けるプログラムがあります。クリップボードからの画像貼り付けjavascript

誰もこれの前に何かをしましたか?または、クリップボードの情報からHDDに画像ファイルを作成するにはどうしたらいいですか?

我々はすでにテキストに対して次を使用しているが、それはイメージのために動作しません:

clipboardData.setData("Text", 'To Copy to clipboard'); 
clipboardData.getData("Text"); // To copy from clipboard 

答えて

1

あなたはおそらくいくつかのサポートされているブラウザでクリップボードのデータを読み取ることができます。

Is it possible to read the clipboard in Firefox, Safari and Chrome using Javascript?

問題は、このデータをユーザーのハードドライブに保存することです。私の知る限りのJavascriptは、セキュリティ上の理由により、ユーザーのハードドライブにアクセスすることはできません。これを回避する1つの方法は、このデータをPHPスクリプトを実行しているサーバーに送信し、次にデータの読み取りとそれをサーバーのローカルストレージに保存することです。このPHPスクリプトは、ファイルの保存時に使用されたフルパスを返すように設定することができます。 javascriptのpostメソッドは、この返されたパスを使用してブラウザにロードし、ブラウザにダウンロードプロンプトを表示するように促します。その後、ユーザーはファイルをダウンロードしてローカルドライブに保存できます。

非常に複雑ですが動作します。

RE:HTA

HTAはIEのみで動作し、あなたが必要と正確なタスクのためのコードリソースを見つけるいくつかの問題を持っていますので、ない非常に人気があります。これは、私は、あなたが保存されたクリップボードの内容を取得するためwindow.clipboardData.getData機能を使用するには、このコードを結合する必要がありますディスク

<!-- 
// CAREFUL -- no error checking 
function readFile() 
{ 
    var fso, fileHandle, contents, yourfilename; 
    fso = new ActiveXObject("Scripting.FileSystemObject"); 
    fileHandle = fso.OpenTextFile(document.editor.yourfilename.value, 1); 
    contents = fileHandle.ReadAll();      

    if (contents) 
    document.all("fileContents").value = contents;  

    fileHandle.close(); 

} 

function writeFile() 
{ 
    var fso, fileHandle, yourfilename; 
    fso = new ActiveXObject("Scripting.FileSystemObject"); 
    fileHandle = fso.CreateTextFile(document.editor.yourfilename.value, true);  
    fileHandle.write(document.all("fileContents").value);   
    fileHandle.close(); 
} 


//--> 

に読み取りおよび書き込みのファイルが見つかりいくつかのコードです。私はHTAを一度もやったことがないので、あなたには何の助けもできません。

+0

HTAを使用すると、これを行うことができます。このページは、HTMLアプリケーションであり、実際にはウェブページではありません。 –

+0

返事をありがとう。私たちはかなりの間、HTAで作業してきました。私が今必要とするのは、クリップボードから画像を取得することだけです。答えは非常に正確ですが。 –

関連する問題