当前位置: 首页 > 面试题库 >

如何显示strtus服务器目录之外的图像

陈朗
2023-03-14
问题内容

这个问题是延续我刚才的问题访问外部文件到我们的Web应用程序,实际上我使用Struts标签上传文件<html:file property="file" />

但是现在我想显示从该位置上传的图像,但是我正在获取src位置,因为http://localhost:9443/D:/resources/images/img1.jpg该位置不是该图像的有效路径。

如何访问服务器目录之外的映像。

这就是我发送带有图像 绝对路径 的Ajax响应的方式

public ActionForward getAjaxUploadedFiles(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
    {

        String imagePath = "D:/resources/images/";
        ArrayList<String> path = new ArrayList<String>();

        File imageFile = new File(imagePath);
        File imageFiles[] = imageFile.listFiles();

        for (int i = 0; i < imageFiles.length; i++) {
            path.add(imageFiles[i].getAbsolutePath());
        }

        PrintWriter out = response.getWriter();
        response.setContentType("text/xml");
        response.setHeader("Cache-Control", "no-cache");
        response.setStatus(HttpServletResponse.SC_OK);

        StringBuffer strXMl = new StringBuffer();
        strXMl.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        strXMl.append("<start>");


        for (String imagePth : path) {
            strXMl.append("<imagePath>");
            strXMl.append(imagePth);
            strXMl.append("</imagePath>");
        }

        strXMl.append("</start>");

        if(strXMl != null){ 
            String Xml = strXMl.toString();
            out.write(Xml);
            System.err.println("XMl Reponse is: " + Xml);
        }
        else {
            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        }
        out.flush();

        return mapping.findForward(null);
    }

这就是我在JSP上渲染图像的方式

 $(response).find("imagePath").each(function() {
            row = tblReportList.insertRow(0);
            row.className="TableBordergray";
            row.style.width="100%";

            var imagePath = $(this).text();

            cell = row.insertCell(0);
            cell.innerHTML="<img src='" + imagePath + "' alt="" + imagePath + "' height='42' width='42'>";
        });

但在img标签我得到图像路径为http://localhost:9443/D:/resources/images/img1.jpg


问题答案:

您不能以这种方式渲染图像。Web服务器将您的图像路径视为相对路径,并在服务器上添加合格的URL位置。您应该创建一个操作来投放图片,例如

<action path="/image" ... scope="request" validate="false"/>

然后像

cell.innerHTML="<img src='" + '/image?path=' + imagePath + "' alt="" + imagePath + "' height='42' width='42'>";

现在,创建将二进制图像数据写入响应输出流的操作。path在操作中采用一个参数,该参数可让您找到用于二进制输出的文件。在冲水输出返回后null,支撑杆不应再继续执行该操作。您还可以添加标题以关闭Cache- Control,以确保从服务器检索到图像。



 类似资料:
  • 问题内容: 这个问题是延续我刚才的问题访问外部文件到我们的Web应用程序,实际上我使用Struts标签上传文件 但是现在我想显示从该位置上传的图像,但是我正在获取位置,因为该位置不是该图像的有效路径。 如何访问服务器目录之外的映像。 这就是我发送带有图像 绝对路径 的Ajax响应的方式 这就是我在JSP上渲染图像的方式 但是在标签我得到的图像路径为 问题答案: 您不能以这种方式渲染图像。Web服务

  • 问题内容: 有谁知道如何更改Apache服务器的文档根目录?我基本上想来自目录而不是。 编辑 我最终弄清楚了。有人建议我更改文件,但最终在其中找到一个文件,并将根目录从更改为,并且可以正常工作。 问题答案: 您需要更改文件中的设置。可能会出现类似 使用您喜欢的编辑器(我建议使用Vim)并查找并将其更改为。对于看起来像这样的设置,还要往下看一点: 您还需要将引号中的内容更改为新目录。这样,当用户发出

  • 我有服务课。我需要通过Facebook、whatsapp、gmail、yahoo等分享我的一些细节。但当我尝试分享时,我发现了一个错误 android.util.AndroidRuntimeExcture:从活动上下文外部调用starActive()需要FLAG_ACTIVITY_NEW_TASK标志。这真的是你想要的吗? 下面是我的代码 请给我一个解决方案

  • 我们有一个ftp服务器,下面只有很少的目录和文件,我可以通过浏览器连接并成功访问目录。但是,当使用同一服务器时:具有凭据的端口无法连接。还尝试使用JSR233采样器列出文件,但没有成功。 请引导。 TestPlan:FTP请求默认值(服务器IP和端口:21) 对于FTP请求,获取如下错误:响应消息:java。木卫一。FileNotFoundException:(系统找不到指定的路径)请求正在进行:

  • 本文向大家介绍jquery控制显示服务器生成的图片流,包括了jquery控制显示服务器生成的图片流的使用技巧和注意事项,需要的朋友参考一下 首先把图片路径作为参数,ajax异步传到后台方法中上传服务器,直接用Jquery传是不行的,它没有权力跟服务器打交道,具体内容不废话了,直接看下文,介绍的很详细。 首先给大家展示下效果图: < 首先是第一副是初始的页面,第二副是点击submit之后服务端生成的

  • php it的函数“is_writable”返回false,然后显示具有下一个权限的目录755所有者和根组。为了使它运行,我把chown放在www-data-r/var/www/myweb。这样做是可行的,但我将所有者从root更改为apache(www.data)。我问题是这种形式解决它的正确与否。我在做一个大洞保安还是正确的?

  • 我按照这个指令创建了一个grpc服务器和客户端:https://docs . Microsoft . com/en-us/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-3.0 当我尝试从客户端调用服务时,客户端会显示以下错误消息:“发生了一个或多个错误。(状态(StatusCode=Unknown,Detail=No Status re

  • 问题内容: 我一直很难完成必须完成的一项非常正常的任务。我将图像上传并保存到Web服务器,并将该文件的路径保存在MySQL数据库中(这一切正常)。不起作用的是从服务器获取图像文件,并通过ajax在页面上显示它。 最初,我只是尝试从数据库中检索路径,并使用图像的路径更新标签的属性。这是可行的,但是所有映像都位于服务器上的文件夹中,所有人都可以访问它们。不是很好。我只能让这些用户访问属于某些用户的图片