java 把上传截图到服务器
(1)从JTextArea或java swing的其他组件获取截图
/*** * convert JTextArea to image * @param ta * @param destFile : java.io.File or OutputStream * @param format * @param multiple : 分辨率倍数 */ public static BufferedImage generateImage(JComponent ta, Object destFile, String format, Integer specifiedHeight, Integer specifiedWidth, int multiple) { int height=ta.getHeight(); int width=ta.getWidth(); if(specifiedHeight!=null&&specifiedHeight!=SystemHWUtil.NEGATIVE_ONE){//如果指定了高度 height=specifiedHeight; } if(specifiedWidth!=null&&specifiedWidth!=SystemHWUtil.NEGATIVE_ONE){//如果指定了高度 width=specifiedWidth; } BufferedImage img = new BufferedImage(width * multiple, height * multiple, BufferedImage.TYPE_INT_RGB); Graphics2D g2d = img.createGraphics(); g2d.scale(multiple, multiple); /*g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE); Ellipse2D.Double e = new Ellipse2D.Double(300D - DOT_SIZE, 200D - DOT_SIZE, DOT_SIZE + DOT_SIZE, DOT_SIZE + DOT_SIZE); g2d.setColor(Color.YELLOW); g2d.fill(e);*/ ta.printAll(g2d); g2d.dispose(); if(!ValueWidget.isNullOrEmpty(destFile)){ if (destFile instanceof File) {//把截图保存到文件 File file = (File) destFile; try { ImageIO.write(img, format/*"jpg"*/, file); } catch (IOException ex) { ex.printStackTrace(); } } else if (destFile instanceof OutputStream) { OutputStream outputStream = (OutputStream) destFile; try { ImageIO.write(img, format/*"jpg"*/, outputStream); } catch (IOException ex) { ex.printStackTrace(); } } } return img; }
(2)把截图转化为字节数组
实际上是把BufferedImage转化为byte[]
/** * 把BufferedImage 转化为字节数组 * * @param img * @return */ public static ByteArrayOutputStream imageToByteArrayOutputStream(BufferedImage img, String formatName) { //创建储存图片二进制流的输出流 ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { //创建ImageOutputStream流 ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream(baos); //将二进制数据写进ByteArrayOutputStream ImageIO.write(img, formatName, imageOutputStream); } catch (IOException e) { e.printStackTrace(); } return baos; }
(3)使用HttpURLConnection发送http请求
public static void uploadFile(String formatName, byte[] bytes, String uploadedFileName) { String size = FileUtils.formatSize(bytes.length); int resultOption = JOptionPane.showConfirmDialog(null, "Are you sure to Upload " + size + " to Server ?", "确认", JOptionPane.OK_CANCEL_OPTION); if (resultOption != JOptionPane.OK_OPTION) { ToastMessage.toast("取消上传", 2000, Color.red); return; } try { String result = HttpSocketUtil.uploadFile("http://blog.yhskyc.com/convention2/ajax_image/upload", bytes, uploadedFileName + "." + formatName, (Map<String, String>) null); Map requestMap = null; try { requestMap = (Map) HWJacksonUtils.deSerialize(result, Map.class); StringBuffer stringBuffer = new StringBuffer("<html>"); for (Object obj : requestMap.keySet()) { Object val = requestMap.get(obj); stringBuffer.append("<div style=\"padding-bottom:5px;margin-bottom: 5px;border: 1px solid #f38399;border-radius: 5px;\" >"); stringBuffer.append("<span style=\"color: #ddd;\" >").append(obj).append("</span>").append(":").append("<br />"); stringBuffer.append(val).append("</div>"); } stringBuffer.append("</html>"); // System.out.println(stringBuffer); ToastMessage.toast("上传成功", 2000); CustomDefaultDialog customDefaultDialog = new CustomDefaultDialog(stringBuffer.toString(), "图片路径", true, null, 800); customDefaultDialog.setVisible(true); // ComponentUtil.appendResult(area2,result,true,false); } catch (JsonParseException e1) { e1.printStackTrace(); } catch (JsonMappingException e1) { e1.printStackTrace(); } System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } /*** * 上传BufferedImage 到远程服务器 * @param img */ public static void uploadBufferedImage(BufferedImage img) { String formatName = "jpg"; ByteArrayOutputStream baos = imageToByteArrayOutputStream(img, formatName); //输出数组 byte[] bytes = baos.toByteArray(); uploadFile(formatName, bytes, "Screenshots"); }
相关推荐
java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 ...
总结来说,实现"java上传图片至服务器并且返回下载URL"的功能,主要涉及HTTP文件上传、文件存储、路径管理、响应处理和安全性控制等多个方面,结合Servlet、Spring等相关技术可以有效地完成这一任务。在开发过程中,...
java web 开发 上传文件至服务端保存于服务端某个文件夹下 java代码示例
**Java上传文件到Linux服务器** 在Java中,可以使用ganymed-ssh2库来实现在Linux服务器上上传文件。这个库提供了SSH2协议的实现,包括SFTP(Secure File Transfer Protocol)功能。首先,需要添加ganymed-ssh2的...
在Java编程中,大文件上传至FTP(File Transfer Protocol)服务器是一项常见的任务,尤其是在处理大量数据传输时。这个场景中,我们关注的重点是如何在上传过程中显示进度条,并确保该进度条与FTP上传的速度同步,以...
### Java 实现上传文件到远程服务器(Spring MVC) 在现代软件开发中,文件上传功能是十分常见的需求之一,尤其在Web应用中。本篇文章将详细介绍如何利用Java编程语言结合Spring MVC框架来实现文件的远程上传功能。...
在Java Web开发中,文件上传是一项常见的功能,用于将客户端的文件传输到服务器。这个过程通常涉及几个步骤,包括接收文件、存储文件以及可能的数据持久化。以下是对标题"java实现文件上传到服务器"和描述的详细解释...
JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。
本篇文章将详细探讨如何使用Java实现本地文件监听,并自动将其上传至服务器,以实现文件同步功能。 首先,让我们从“JAVA 监听文件夹变化”这个知识点开始。Java提供了一种称为`WatchService`的机制,它允许程序...
java图片上传到服务器以及在服务器上图片修改删除,可以从前端获取图片后端接收然后保存,还可以修改图片修改之前会删除原来的图片。
在这个场景中,我们关注的是如何使用Java来实现文件压缩包的上传以及在服务器上的解压缩。Java作为一种强大的编程语言,提供了丰富的库来支持这样的操作,特别是在涉及到SFTP(Secure File Transfer Protocol)时,...
"Java 实现利用 HTTP 基于 Servlet 上传文件至服务器" 文件上传概述 文件上传是指客户端将文件传输到服务器端的过程。在 Web 开发中,文件上传是非常常见的操作,例如上传头像、上传文件等。在 Java 中,可以使用 ...
在Java分布式项目中,涉及到客户端上传图片到FTP服务器并由Nginx提供HTTP服务进行图片下载,这是一个典型的文件传输和Web服务集成的场景。这里主要涉及三个关键知识点:Java FTP客户端编程、Nginx服务器配置以及Java...
综上所述,Java上传文件到服务器是一个涉及HTTP协议、Multipart数据格式、Servlet API以及可能的第三方库(如Apache Commons FileUpload)的过程。理解这些知识点对于开发健壮且安全的文件上传功能至关重要。
Java上传图片到服务器 对于图片处理有两种: 一种是插入数据库;一种是上传到服务器上。
Apache commons-net 上传文件至FTP服务器
本教程将探讨如何利用Servlet技术实现文件上传至由Tomcat服务器托管的应用中。 首先,我们需要了解Servlet的基本概念。Servlet是Java编程语言中用于扩展Web服务器功能的Java类。在文件上传场景下,Servlet扮演了...
以上就是关于“Java上传服务器文件代码”的核心知识点,涵盖了从前端表单提交到后端接收、处理及保存文件的全过程。实际开发中,可以根据项目需求和服务器环境进行适当调整和优化。希望这个详细解释能对你有所帮助,...
python自动化打包java maven工程,并上传至服务器,简化服务器war上传步骤和节约时间