javascript客户端图片预览,兼容最新firefox,chrome和IE这种效果?!

解决方案 »

  1.   

    谢谢楼上的兄弟,效果类似,但是有个疑问,如何把绝对路径生成file对象呢,试过方法 http://blog.csdn.net/oscar999/article/details/6698356 在firefox生成路径,不过不管用,老是提示 no permisson... 也按照他的做过修改的signed.applets.codebase_principal_support=true
      

  2.   

    路径是固定的,没办法改啦,另外说明下,我做的不是上传图片,只是调用dll让图片在firefox上显示的,谢谢版主啦,我另外找方法试试
      

  3.   

    //index.jsp
    function prop(){
    var img=document.getElementById("img");
    var path="f:\\005.jpg";
    var xmlhttp=null;
    if(window.ActiveXObject){
    xmlhttp = new ActiveObject("Microsoft.XMLHTTP");
    }
    else if(window.XMLHttpRequest){
    xmlhttp = new XMLHttpRequest();
    }
    xmlhttp.open("post","<%=basePath%>ImageServlet.do");
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlhttp.send("path="+path);
    var result=xmlhttp.responseText;
                    img.src=result;
    <img id="img2"><br/>//ImageAction.java
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.commons.codec.binary.Base64;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.springframework.core.io.FileSystemResource;
    import org.springframework.core.io.Resource;
    import org.springframework.util.FileCopyUtils;
    public class ImageAction extends ActionForward {

    public ActionForward execute(ActionMapping mapping,ActionForm from,HttpServletRequest request,HttpServletResponse response) throws IOException{
    String path=request.getParameter("path");
    Resource resource = new FileSystemResource(path);
    InputStream in;
    String str="";
    try {
    in = resource.getInputStream();
    byte[] bs = FileCopyUtils.copyToByteArray(in);
    str = Base64.encodeBase64String(bs);
    str="data:;base64,"+str;
    System.out.println(str);
    PrintWriter out = response.getWriter();
    out.print(str);
    out.flush();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return null;
    }
    }
    配置文件
            <action-mappings>
    <action path="/ImageServlet" type="test.ImageAction">
    <forward name="index" path="index.jsp" />
    </action>
    </action-mappings>以上代码可解决firefox访问本地路径的问题
    参考文档:
    http://www.iteye.com/topic/790473
    http://www.cnblogs.com/molao-doing/articles/java.html
    真心感谢他们提供的帮助,也谢谢版主的意见。