1

PHP に基づく Mantis バグトラッカー (バージョン 1.1.8) を使用しています。バグを追加するワークフローを容易にするために、スクリーンショットをクリップボードから「新しいバグ フォーム」に直接貼り付けるオプションを追加したいと考えています。

スクリーンショットは開発者にとってバグレポートの価値を高めるので、できるだけ簡単に追加できるようにしたいと考えています。できれば外部アプリケーションを使用せずに、ブラウザで直接。

これを追加する方法を探しましたが、運がありません。他の人はこれをどのように行いますか?明らかな何かが欠けていますか?

編集:バグトラッカーは小さな会社のプライベートなものなので、たとえばJavaアプレットが存在するセキュリティリスクを喜んで受け入れます。

4

5 に答える 5

4

クライアントでActiveX、アプレット、またはFlashタイプのテクノロジを使用する以外に、これを行う方法は実際にはありません。それでも、セキュリティ上の障害は数多くあります。ブラウザには、クリップボードからWebサイトにアップロードするのに適した形式に変換する簡単な方法がありません。変換したとしても、セキュリティ上の懸念があります。たとえば、ページ内の悪意のあるコードは、クリップボードから機密情報をコピーして、それが発生していることを知らなくてもページのサイトに送信する可能性があります。

更新: Mantis(および他の多くのバグトラッカー)と連携すると主張するスタンドアロンのスクリーンキャプチャユーティリティがあります。これはおそらくあなたの最良の選択肢です。

于 2009-07-16T14:23:58.577 に答える
2

私は非常にうまく機能する独自のソリューションを構築することができました。スクリーンショットを添付するページに Java ファイル アップロード アプレットを配置します。アプレットには 2 つのボタンがあります。

  1. クリップボードからアプレットに画像を貼り付ける「スクリーンショットの貼り付け」
  2. 「スクリーンショットのアップロード」: 貼り付けた画像を Mantis サーバーの /tmp ディレクトリにアップロードし、javascript コールバックを使用して、アップロードされた画像の自動生成されたファイル名をフォーム フィールドに配置します。

フォームが送信されると、Mantis の新しい関数がフォーム フィールドのファイル名を使用して画像を /tmp から最終的な場所に移動し、他の添付ファイルと同様に画像を処理します。フォームが送信されない場合、アップロードされたファイルは /tmp に残り、最終的にサーバーによって削除されます。

うまく機能しますが、避けられない欠点が 1 つあります。クライアントのクリップボードにアクセスするために Java を使用していますが、JVM サンドボックスを壊す必要があります。どうやらこれは、Verisign のような会社へのかなり高額な年間支払い (500 ドル程度) を必要とするアプレットにデジタル署名すれば実行できるようです (現在、cacert.org のような無料のオプションはまだ有用性が限られています)。

Java アプレットがクリップボードにアクセスできるようにするもう 1 つの方法は、ホーム ディレクトリまたはプロファイル ディレクトリに .java.policy というファイルを作成することです。このファイルには次のものが含まれている必要があります (ドメインを Java アプレットをホストするドメインに置き換えます)。

grant codeBase "http://bugs.example.com/-" {
  permission java.awt.AWTPermission "accessClipboard";
};

ありがたいことに、JVM は使用するブラウザーに関係なく常に同じファイルをチェックするため、このソリューションはブラウザー間で互換性があります。私のソリューションでは、この .java.policy ファイルを各クライアント コンピュータに配置する必要があるため、理想的ではありませんが、管理された企業環境では実行可能です。

于 2009-08-25T08:51:04.793 に答える
2

必要な機能を備えた Atlassian Confluence 用のドラッグ アンド ドロップ イメージ アタッチャー Java アプレットがあります。Confluence のみをサポートしていますが、ソースコードは BSD で自由に利用できるため、必要に応じてカスタマイズできるはずです。

リンクを忘れた: http://confluence.atlassian.com/display/CONFEXT/Drag+and+Drop+Image+Attacher+Plugin

于 2009-07-16T14:57:03.033 に答える
1

これも覗いてみました。本当に簡単な方法ではないので、代わりに無制限の数のファイルをアップロードすることを許可し、それらのファイルはそのバグに「添付」されました。スクリーンショット、スプレッドシート、ワード ドキュメントなどをアップロードできるため、実際にはより優れていることが判明しました。

あなたと同じように、これは内部専用サイトであるため、セキュリティは緩いです。私は ASP.Net でこれを行いましたが、一般的な考え方は、バグのページを見ているときにアップロード ボックスがあるということです。彼らが何かをアップロードするときは、バグ ID を事前に追加します。したがって、ScreenShot.jpg は 233_ScreenShot.jpg になります。

また、そのページには、アップロード ディレクトリ内のそのバグ ID で始まるすべてのファイル名にバインドされたグリッド (GridView) があります。

これがどのように見えるかを見るには、ここをクリックしてください。

于 2009-07-16T14:46:48.797 に答える
1

技術志向のユーザーには、Eclipse + Mylyn + Mylyn-Mantis コネクタを使用する可能性が常にあります。

次に、スクリーンショットのアップロードは非常に簡単です。

スクリーンショットのアップロード http://img216.imageshack.us/img216/246/screenshotattachments1.png

于 2009-07-16T14:56:08.510 に答える