精华内容
下载资源
问答
  • java代码获取linux路径下的图片文件并返回给前端展示 java代码获取linux路径下的图片文件并返回给前端展示 已知图片文件所在的linux目录,如何展示给前端; // 后端代码 @PostMapping("/getPic") public void ...

    java代码获取linux路径下的图片文件并返回给前端展示

    java代码获取linux路径下的图片文件并返回给前端展示

    已知图片文件所在的linux目录,如何展示给前端;

    // 后端代码
    
     @PostMapping("/getPic")
        public void getPic(String ip, HttpServletResponse response) {
            response.setContentType("image/jpeg");
      		//连接linux服务器
            Connection conn = new Connection(ip,22);
            try {
                conn.connect();
                //输入连接密码
                boolean isAuthenticated = conn.authenticateWithPassword("root", "*******");
                //校验密码是否正确
                if (isAuthenticated == false) {
                    System.err.println("authentication failed");
                }
                //scp执行代码
                SCPClient client = new SCPClient(conn);
                client.get("/usr/local/123.jpg",response.getOutputStream());
                conn.close();
            } catch (IOException ex) {
                System.out.println("连接服务器失败");
            }
        }
    
    // scp   maven依赖
    
    <dependency>
          <groupId>ch.ethz.ganymed</groupId>
          <artifactId>ganymed-ssh2</artifactId>
          <version>build210</version>
    </dependency>
    
    // 前端参考代码片段
    
    //展示标签
    <div class="imgbox" v-show="clsooff">
    		<span class="close" @click="close()"> X</span>
    		<img width="500" height="400" src="" id="imgs">
    </div>
    
    //调用部分
    <td @click="getPic(item.ip)">{{item.***}}</td>
    
    //方法区
    methods:{
    			close(){
    				this.clsooff=false;
    			},
    			getPic(ip){
    				var that=this;
    				var xhr=new XMLHttpRequest();
    				xhr.open("post","http://localhost:8080/getPic?ip="+ip,true);
    				xhr.responseType ="blob";
    				xhr.onload =function () {
    					if (this.status==200){
    						var blob =this.response;
    						var img = document.getElementById("imgs");
    						img.onload =function (e) {
    							window.url.revokeObjectURL(img.src);
    						};
    						img.src=window.URL.createObjectURL(blob);
    						that.clsooff=true;
    					}
    				}
    				xhr.send();
    			},
    
    展开全文
  • = null) { // ‘\r’是为了在前端展示时换行 stringBuilder.append(lineString).append("\r"); lineString = bufferedReader.readLine(); } } catch (Exception e) { e.printStackTrace(); } finally { if ...
    public ResultVo viewLog(String taskId) {
            StringBuilder stringBuilder = new StringBuilder();
            FileInputStream fileInputStream = null;
            InputStreamReader inputStreamReader = null;
            BufferedReader bufferedReader = null;
            try {
                //创建文件
                File file = new File("D:\\logs\\rpa\\batch_info.log");
                //获取文件输入流
                fileInputStream = new FileInputStream(file);
                //使用utf-8读流
                inputStreamReader = new InputStreamReader(fileInputStream, StandardCharsets.UTF_8);
                bufferedReader = new BufferedReader(inputStreamReader);
                //读行
                String lineString = bufferedReader.readLine();
                //判断,是否数据
                while (lineString != null) {
                    // ‘\r’是为了在前端展示时换行
                    stringBuilder.append(lineString).append("\r");
                    lineString = bufferedReader.readLine();
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (fileInputStream != null) {
                    try {
                        fileInputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (inputStreamReader != null) {
                    try {
                        inputStreamReader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (bufferedReader != null) {
                    try {
                        bufferedReader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return ResultVo.ok().put("log",stringBuilder.toString());
        }
    
    展开全文
  • 一,java端 ...2,这种传输图片的方式可以用于Java后台代码生成条形码二维码,直接转成base64传给前台展示。 @RequestMapping("/login") public String login(Map<String ,Object> map){ by...

    一,java端

    1,项目是基于springboot的。读取本地图片,转成base64编码字节数组字符串,传到前端。
    2,这种传输图片的方式可以用于Java后台代码生成条形码二维码,直接转成base64传给前台展示。ps:(在传给前台的字符串前要加上data:image/png;base64,,这样html的img标签的src才能以图片的格式去解析字符串)

    @RequestMapping("/login")
        public String login(Map<String ,Object> map){
            byte[] data = null;
            // 读取图片字节数组
            try {
                InputStream in = new FileInputStream("E://aa.jpg");
                data = new byte[in.available()];
                in.read(data);
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            // 对字节数组Base64编码
            BASE64Encoder encoder = new BASE64Encoder();
            // 返回Base64编码过的字节数组字符串
            map.put("image","data:image/png;base64,"+ encoder.encode(Objects.requireNonNull(data)));
            return "login";
        }
    

    二,html端

    用的是thymeleaf模板引擎,只是单纯地展示base64编码的图片。

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>登录</title>
    </head>
    <body>
    	<img th:src="${image}">
    </body>
    </html>
    

    三,效果

    在这里插入图片描述

    展开全文
  • 一、问题描述在项目开发的时候,我们经常会遇到一类文件上传的问题,就是获取图片是哪种格式。很多情况下,很多人都是用后缀名去判断,如下所示。if(filename.endsWith(".png") || filename.endsWith(".jpg")){//...

    一、问题描述

    在项目开发的时候,我们经常会遇到一类文件上传的问题,就是获取图片是哪种格式。很多情况下,很多人都是用后缀名去判断,如下所示。

    if(filename.endsWith(".png") || filename.endsWith(".jpg"))

    {

    //保存图片

    }else{

    throw new IOException("Error file format !");

    }

    但是这种方式相当不可靠,我们可以尝试将zip文件、rmvb文件、css、js修改后缀名位jpg或者png上传,也可以上传到服务器,这就造成我们服务器上出现了脏数据。此外,对于有些图片文件,修改成错误的扩展名,有些浏览器可能无法显示出此图片。

    二、解决方案

    在计算机系统中,媒体类型(MimeType)的文件都有【标识符】,zip、图片本身属于媒体文件,因此我们可以通过编解码的方式判断图片是否合法。

    1、判断标示方法

    private static boolean isBMP(byte[] buf){

    byte[] markBuf = "BM".getBytes(); //BMP图片文件的前两个字节

    return compare(buf, markBuf);

    }

    private static boolean isICON(byte[] buf) {

    byte[] markBuf = {0, 0, 1, 0, 1, 0, 32, 32};

    return compare(buf, markBuf);

    }

    private static boolean isWEBP(byte[] buf) {

    byte[] markBuf = "RIFF".getBytes(); //WebP图片识别符

    return compare(buf, markBuf);

    }

    private static boolean isGIF(byte[] buf) {

    byte[] markBuf = "GIF89a".getBytes(); //GIF识别符

    if(compare(buf, markBuf))

    {

    return true;

    }

    markBuf = "GIF87a".getBytes(); //GIF识别符

    if(compare(buf, markBuf))

    {

    return true;

    }

    return false;

    }

    private static boolean isPNG(byte[] buf) {

    byte[] markBuf = {(byte) 0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A}; //PNG识别符

    // new String(buf).indexOf("PNG")>0 //也可以使用这种方式

    return compare(buf, markBuf);

    }

    private static boolean isJPEGHeader(byte[] buf) {

    byte[] markBuf = {(byte) 0xff, (byte) 0xd8}; //JPEG开始符

    return compare(buf, markBuf);

    }

    private static boolean isJPEGFooter(byte[] buf)//JPEG结束符

    {

    byte[] markBuf = {(byte) 0xff, (byte) 0xd9};

    return compare(buf, markBuf);

    }

    2、核心方法

    /**

    * 获取文件的mimeType

    * @param filename

    * @return

    */

    private static String getMimeType(String filename){

    try {

    String mimeType = readType(filename);

    return String.format("image/%s", mimeType);

    } catch (IOException e) {

    e.printStackTrace();

    }

    return null;

    }

    /**

    * 读取文件类型

    * @param filename

    * @return

    * @throws IOException

    */

    private static String readType(String filename) throws IOException {

    FileInputStream fis = null;

    try {

    File f = new File(filename);

    if(!f.exists() || f.isDirectory() || f.length()<8) {

    throw new IOException("the file ["+f.getAbsolutePath()+"] is not image !");

    }

    fis= new FileInputStream(f);

    byte[] bufHeaders = readInputStreamAt(fis,0,8);

    if(isJPEGHeader(bufHeaders))

    {

    long skiplength = f.length()-2-8; //第一次读取时已经读了8个byte,因此需要减掉

    byte[] bufFooters = readInputStreamAt(fis, skiplength, 2);

    if(isJPEGFooter(bufFooters))

    {

    return "jpeg";

    }

    }

    if(isPNG(bufHeaders))

    {

    return "png";

    }

    if(isGIF(bufHeaders)){

    return "gif";

    }

    if(isWEBP(bufHeaders))

    {

    return "webp";

    }

    if(isBMP(bufHeaders))

    {

    return "bmp";

    }

    if(isICON(bufHeaders))

    {

    return "ico";

    }

    throw new IOException("the image's format is unkown!");

    } catch (FileNotFoundException e) {

    throw e;

    }finally{

    try {

    if(fis!=null) fis.close();

    } catch (Exception e) {

    }

    }

    }

    /**

    * 标示一致性比较

    * @param buf 待检测标示

    * @param markBuf 标识符字节数组

    * @return 返回false标示标示不匹配

    */

    private static boolean compare(byte[] buf, byte[] markBuf) {

    for (int i = 0; i < markBuf.length; i++) {

    byte b = markBuf[i];

    byte a = buf[i];

    if(a!=b){

    return false;

    }

    }

    return true;

    }

    /**

    *

    * @param fis 输入流对象

    * @param skiplength 跳过位置长度

    * @param length 要读取的长度

    * @return 字节数组

    * @throws IOException

    */

    private static byte[] readInputStreamAt(FileInputStream fis, long skiplength, int length) throws IOException

    {

    byte[] buf = new byte[length];

    fis.skip(skiplength); //

    int read = fis.read(buf,0,length);

    return buf;

    }

    3、测试代码

    正常测试

    public class ImageType {

    public static void main(String[] args) {

    String filename = "oschina.jpg";

    String type = getMimeType(filename);

    System.out.println(type);

    }

    }

    输出

    image/jpeg

    修改扩展名测试

    ①修改oschina.jpeg为oschina.png

    ②复制oschina.png删除扩展名

    public class ImageType {

    public static void main(String[] args) {

    String filename = "oschina.png";

    String type = getMimeType(filename);

    System.out.println(type);

    filename = "oschina";

    type = getMimeType(filename);

    System.out.println(type);

    }

    }

    输出

    image/jpeg

    image/jpeg

    作者:IamOkay

    展开全文
  • 用到了阿里巴巴的JSON插件com.alibaba.fastjson.JSONObject,可以自行去网上下载。 index.html只用看286行即可,主要是对多层菜单结构的数据生成html 2个java文件实现了将结果集构建成一个菜单树。
  • [Java教程]前端PDF文件转图片方法0 2020-11-04 19:00:28第一步:先下载pdfjs,网址:PDF下载地址,再引入到项目中,我是标签直接引用的第二步:html代码添加两行代码,一个是canvas用来绘图,一个是img用来最后展示...
  • boot-starter-weblombok对文件进行操作,上传、预览和删除添加跨域功能前端使用VUE,前后端分离看不懂代码,不建议下载可以参考上一篇文章,文件上传采用Form方式(前后端不分离)FileUploadController.javapackage ...
  • 我在数据库查的数据中只有该记录的绝对路径,我需要将该图片展示在页面上,但是项目是springboot的项目,在img标签的src不能使用绝对路径,只能请求后台接口将这个绝对路径的图片文件展示出来 前端代码 <div...
  • 我先说一下我的需求:由于java后台编译的文件流在手机端加载速度太慢,所以想着可以在前端解析,放在页面展示给用户。 所以,我需要后台传给我的是base64编码的pdf文件。我们知道,单纯靠base64解析pdf文件是解析不...
  • 有些时候我们想将用aspose等工具将Excel等类型文件转成HTML的文件,或者其他已经生成好的HTML文件通过后端传到前端展示在页面上。这时后端和前端我们都通过流来处理就可以实现。 1、首先后端拿到文件,转化成流的...
  • Java Web 前端页面 模板源码

    万次阅读 2019-01-06 14:19:27
    本文只展示3例模板 ,源码文件请点击提取码.如果需要更多请联系本人获取. 1.源码文件提取码:https://pan.baidu.com/s/104nrthWY1M3RwPnhHfjrRg  2.源码文件提取码:...
  • 配置文件 2. 在网络中传输 * xml与html的区别 1. xml标签都是自定义的,html标签是预定义。 2. xml的语法严格,html语法松散 3. xml是存储数据的,html是展示数据 * w3c:万维网联盟 2. 语法:
  • Java web实现图片上传服务器、同步保存数据库以及如何在前端页面展示教程一、上传二、后端代码处理三、数据库读取图片在前端页面展示(重点) 大概流程: 1.上传插件的选择:此篇博文选择的是jQuery的zyupload文件...
  • pom文件 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.0.0</version> </dependency> <dependency>
  • 1.第一步前端上传文件以及表单,filebox_file_id_1是input的id var formData = new FormData(); formData.append("files", $("#filebox_file_id_1")[0].files[0]); var form = $('#ff').serializeObject(); formData...
  • 一、SpreadJS 简介SpreadJS 是一款基于 HTML5 的纯 JavaScript 电子表格和网格功能控件,以“高速低耗、纯前端、零依赖”为产品特色,可嵌入任何操作系统,...本文将以 xlsx 文件格式为例,展示如何使用 SpreadJS 实...
  • vue就不展示了,下边只展示Java中互相转换的例子。 Java实现图片转化成base64字符串 //图片转化成base64字符串 public static String imgGetBase64() {//将图片文件转化为字节数组字符串,并对其进行Base64编码...
  • 1.第一步前端上传文件以及表单,filebox_file_id_1是input的idvar formData = new FormData();formData.append("files", $("#filebox_file_id_1")[0].files[0]);var form = $('#ff').serializeObject();formData....
  • 目录 1.前端 2.后台代码 3.问题 基于jfinal框架。 ...不一定适用,但是流程是这个...需要jqueryjs文件,jquery.form.js文件 代码: html: <!--导入txt--> <form id="importform" class="form-hori...
  • java文件上传

    2018-07-10 12:04:55
    前台页面部分,这是我做的前端部分的一部分,用以实现文件上传,任何文件都可以添加上传,对应上传文件是否为图片,在后台部分判断。上传其他文件也可以使用本方法,只要改动后台的文件类型判断就行。 注:data-...
  • java文件上传项目

    2020-04-09 18:03:32
    1.文件上传项目 ...项目思想: 一般的多文件上传 前端直接调用上传后返回文件的访问地址 地址来源: 项目文件上传至服务器目录/...2.文件展示项目 地址:https://github.com/cmtccc/attachment 项目思想:前端简单使用v...
  • 静态页面简单的可以理解为没有数据交互,只做内容展示的页面。 浏览器可以直接运行静态的HTML文件,我们就先认识一下HTML文件。  很多编辑器都可以编辑HTML文件,就如我们常见的txt文件,也可以通过该后缀转化成...
  • 业务没有需要多文件一起上传,所以这里只是单文件,多文件的话也是在获得File的地方变成List即可,多个循环,多一些线程,网上有代码一、pom.xml <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 380
精华内容 152
关键字:

java文件前端展示

java 订阅