解决方案 »

  1.   

    由 $("#images").attr("src", "data:image/gif;base64," + data); 可知
    data 应该是 base64 编码后的数据
    所以 dataType: "text" 是正确的对 java 不是很熟悉,但
    bufferOut.write(buffer, 0, size);
    显然是直接输出了图片数据,那么 base64 编码在哪里进行呢?
    System.out.println("read files pass");
    又把一个字符串附加在输出中,这难道不会影响到图片的解析吗?
      

  2.   


    bufferOut.writer(buffer, 0, size)中包装的是response的输出流,如果不是通过输出来显示,那应该怎么做呢?
    System.out.println("read files pass")是系统的输出,是我用来作测试的,看看代码是否执行到,应该和response的输出流没有关系的吧?仁兄不能只提问题,不提解决方法啊,高见~
      

  3.   


    “记得servlet生成的图片要记浏览器不得缓存,”这个是什么意思?兄台看的懂?修改的URL应该是怎么样的?
      

  4.   

    我已经说过了“我对java不熟悉”,所以有些问题需要你自己敲定
    System.out.println("read files pass"); 
    只是在调试时输出到控制台吗?却对不会输出到客户端?我对 php 很精通,这是我刚才做的测试<?php
    if($_POST) {
      echo base64_encode(file_get_contents('../'.$_POST['img'])); //读取图片数据并作base64编码
      exit;
    }
    ?>
    <img id='images' src=''>
    <script src=/scripts/jquery-1.8.3.min.js></script>
    <script>
    $(function() {
      $.post('<?=$_SERVER['PHP_SELF']?>', {img:'03.gif'}, function(data) {
        $("#images").attr("src", "data:image/gif;base64," + data);
      });
    });
    </script>
    虽然语言不同,但是原理是一样的
      

  5.   

    当然能跑的通!
    我似乎并没有理由跑到这里来忽悠你吧?既然是 data:image/gif;base64,
    那么 data 就一定要是 base64 编码的了
    java 比 php 强大的多,不至于这点小事也做不到吧