我们正在使用基于PHP的Mantis bugtracker(版本1.1.8)。为了简化添加错误的工作流程,我们想添加一个选项,将剪贴板中的屏幕截图直接粘贴到“新的错误表单”中。
屏幕截图使bug报告对开发人员更有价值,所以我想尽可能简单地添加它们。最好不要使用外部应用程序,而是直接在浏览器中使用。
我一直在想办法添加这个,但没有运气。其他人怎么做?我错过了一些明显的东西吗?
编辑:bugtracker是一个私有的,在一家小公司,所以我愿意接受例如Java applet存在的安全风险。
答案 0 :(得分:4)
除了在客户端上使用ActiveX,applet或Flash类型技术之外,没有办法做到这一点。即便如此,仍有许多安全障碍。浏览器没有简单的方法将剪贴板中的内容转换为适合上传到网站的格式,即使它确实存在安全问题。例如,页面中的恶意代码可以从剪贴板中复制敏感信息并将其发送到页面的网站,而您甚至不知道它正在发生。
更新:有一个standalone screen capture utility声称可以与Mantis(以及其他一系列错误跟踪器)一起使用。这可能是你最好的选择。
答案 1 :(得分:2)
Atlassian Confluence有一个拖放图像附加Java applet,它具有您需要的功能。它只支持Confluence,但由于源代码在BSD下免费提供,您应该能够根据自己的需要进行自定义。
忘记链接: http://confluence.atlassian.com/display/CONFEXT/Drag+and+Drop+Image+Attacher+Plugin
答案 2 :(得分:2)
我已经设法建立了自己的解决方案,效果很好。它将Java文件上载小程序放在您要附加屏幕截图的页面上。 applet有两个按钮:
提交表单后,Mantis中的新功能使用表单字段中的文件名将图像从/ tmp移动到最终位置,并像处理其他附件一样处理图像。如果表单从未提交,则上传的文件将保留在/ tmp中,并最终由服务器清除。
它运行良好,但有一个我无法避免的缺点:我使用Java来访问客户端的剪贴板,但这需要破坏JVM沙箱。显然,如果您对applet进行数字签名,这需要花费相当昂贵的年度付款(例如500美元)给Verisign这样的公司(目前像cacert.org这样的免费选项仍然有限)。
允许Java applet访问剪贴板的另一种方法是在您的home或profile目录中创建一个名为.java.policy的文件。此文件应包含以下内容(将域替换为托管Java小程序的域):
grant codeBase "http://bugs.example.com/-" {
permission java.awt.AWTPermission "accessClipboard";
};
值得庆幸的是,该解决方案是跨浏览器兼容的,因为无论使用何种浏览器,JVM始终都会检查相同的文件。由于我的解决方案需要在每台客户端计算机上使用此.java.policy文件,因此我认为它不是理想的,但在受控公司环境中可行。
答案 3 :(得分:1)
我也看了这个。没有真正简单的方法,所以我允许他们上传无限数量的文件,然后这些文件将“附加”到该bug。事实证明它更好,因为他们可以上传截图,电子表格,文档等等。
与您的一样,这是一个仅限内部网站,因此安全性很高。我在ASP.Net中这样做了,但一般的想法是,当他们查看一个页面的bug时,他们有一个上传框。当他们上传某些内容时,我会预先添加bug id。所以ScreenShot.jpg成为233_ScreenShot.jpg。
此页面上还有一个网格(GridView),它绑定到我上传目录中以该bug id开头的所有文件名。
要查看此内容click here.
答案 4 :(得分:1)
对于面向技术的用户,始终可以使用Eclipse + Mylyn + Mylyn-Mantis connector。
然后上传screeshots很容易:
Screenshot upload http://img216.imageshack.us/img216/246/screenshotattachments1.png