如题,本人用structs2写一个上传文件的页面, 已可以成功上传文件。现在的问题是当用户点击浏览选择文件后(当然该文件只允许为图片文件),如何在同一个页面显示图片呢?

解决方案 »

  1.   

    将上传的文件放到WEB应用的根目录下,其相对根目录与WEB-INF在同一目录。就可以在HTTP中访问。比如WEB-INF所在的目录为:
    .../tomcatapp/appName/WEB-INF/
    则将图片存放路径为:
    .../tomcatapp/appName/images/xxx.jpeg
    其中.../tomcatapp 表示tomcat根目录。
    appName表示,当前WEB应用的名称。
      

  2.   

    这个用js来实现的
    1、脚本,把下面代码加到<head>与</head>之间<script type="text/javascript" language="javascript">   
    function PreviewImg(imgFile){   
         document.getElementById("idImg").style.display = "none";//隐藏初始化图片的显示,让过滤器显示   
         var newPreview=document.getElementById("newPreview");   
         remove(newPreview);   
            
         var imgDiv=document.createElement("div");   
         document.body.appendChild(imgDiv);   
         imgDiv.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";   
         imgDiv.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src=imgFile.target.value;   
            var img_object = document.getElementById("engineroom_layout_addr");   
            img_object.style.display = "inline";   
            img_object.src = addrObject.value;   
            if (!img_object.width || img_object.width > 300) {   
                imgDiv.style.width = "300px";   
            }   
            if (!img_object.height || img_object.height > 200) {   
                imgDiv.style.height = "200px";   
            }   
            addrObject.style.display = "none";   
         //imgDiv.style.width="320px";   
         //imgDiv.style.height="127px";   
         newPreview.appendChild(imgDiv);   
            
    }   
    //使用removeChild从文档中删除DOM节点   
    function remove(obj) {   
        var test = obj;   
        var children = test.childNodes;   
        for (i = 0; i < children.length; i++) {   
            test.removeChild(children[i]);   
        }   
    }   
    </script>  
      

  3.   

    WEB-INF/images/xx.jpg<img src="/images/xx.jpg">
      

  4.   

    点浏览后,你用ajax请求获取上传文件的路径展示出来不行吗?
      

  5.   

    好像还是有点没明白我的意思。哈。
    我的意思是在没有提交保存的action之前 在文件上传那个jsp页面同时显示该图片。
    也就是说点击了浏览之后,临时文件貌似已经保存到tomcat的conf/Catalina/localhost。
    就是说相当于我在点击浏览结束后,同时在当前的jsp页面显示该图片,表单还没提交哦。呵呵。