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上传图片至服务器并且返回下载URL"的功能,主要涉及HTTP文件上传、文件存储、路径管理、响应处理和安全性控制等多个方面,结合Servlet、Spring等相关技术可以有效地完成这一任务。在开发过程中,...
java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 ...
java web 开发 上传文件至服务端保存于服务端某个文件夹下 java代码示例
在Java编程中,大文件上传至FTP(File Transfer Protocol)服务器是一项常见的任务,尤其是在处理大量数据传输时。这个场景中,我们关注的重点是如何在上传过程中显示进度条,并确保该进度条与FTP上传的速度同步,以...
**Java上传文件到Linux服务器** 在Java中,可以使用ganymed-ssh2库来实现在Linux服务器上上传文件。这个库提供了SSH2协议的实现,包括SFTP(Secure File Transfer Protocol)功能。首先,需要添加ganymed-ssh2的...
### Java 实现上传文件到远程服务器(Spring MVC) 在现代软件开发中,文件上传功能是十分常见的需求之一,尤其在Web应用中。本篇文章将详细介绍如何利用Java编程语言结合Spring MVC框架来实现文件的远程上传功能。...
在Java Web开发中,文件上传是一项常见的功能,用于将客户端的文件传输到服务器。这个过程通常涉及几个步骤,包括接收文件、存储文件以及可能的数据持久化。以下是对标题"java实现文件上传到服务器"和描述的详细解释...
JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。
本篇文章将详细探讨如何使用Java实现本地文件监听,并自动将其上传至服务器,以实现文件同步功能。 首先,让我们从“JAVA 监听文件夹变化”这个知识点开始。Java提供了一种称为`WatchService`的机制,它允许程序...
java图片上传到服务器以及在服务器上图片修改删除,可以从前端获取图片后端接收然后保存,还可以修改图片修改之前会删除原来的图片。
"Java 实现利用 HTTP 基于 Servlet 上传文件至服务器" 文件上传概述 文件上传是指客户端将文件传输到服务器端的过程。在 Web 开发中,文件上传是非常常见的操作,例如上传头像、上传文件等。在 Java 中,可以使用 ...
在这个场景中,我们关注的是如何使用Java来实现文件压缩包的上传以及在服务器上的解压缩。Java作为一种强大的编程语言,提供了丰富的库来支持这样的操作,特别是在涉及到SFTP(Secure File Transfer Protocol)时,...
在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上传步骤和节约时间