jsp+mysql+servlet图片上传到d盘下,要怎么显示在前台页面 - 爱问答

(爱问答)

jsp+mysql+servlet图片上传到d盘下,要怎么显示在前台页面

如下图,可以查出路径,D盘upload目录下确实有这张图片,但是显示不了


jsp的代码如下:

${oneNews.image}

<img src="${oneNews.image}" width="100px" height="100px">

虽然知道可能是路径问题,但不知道怎么写,请问要怎么做呢?

图片和工程不在一个盘符下,图片也不能放到工程下。

在JSP 文件中 <img src="C:/Users/fx/Pictures/test.jpg"/>这样是引不到图片的。因为,JSP页面在引图片的时候是 在页面解析的路径是<img src="http://localhost:8080/test/images/1.jpg">也就是说JSP在引图片的时候是先去你的工程目录下找的。

所以如果要在JSP中引入其他盘符的图片,有两种方法可以解决:

一、用虚拟路径来配置
在tomcat下的conf/server.xml中增加一个代码,在<Host></Host>中间
如下:

<!--增加的--path="/虚拟名" docBase="虚拟路径" ->
<Host>
  <Context path="/upload" docBase="D:louyuimageupload"  reloadable="true"  >
  </Context>
</Host>
配置好以后,在JSP文件中为:

<img alt="" src="/upload/kuaidaowanlilai0605.jpg">
图片就显示出来了。

二、将文件用流读取出来显示:

<img alt="" src="../...action">
Action代码如下:

//图片的处理
public String getimg() throws IOException {
 HttpServletResponse response = ServletActionContext.getResponse();
  response.setContentType("text/html; charset=UTF-8");
  response.setContentType("image/jpeg"); // 设置图片格式格式,这里可以忽略
  FileInputStream fis = new FileInputStream("D:/louyuimage/upload/aaaaa/yangmi1.jpg");
  OutputStream os = response.getOutputStream();
  try {
    int count = 0;
    byte[] buffer = new byte[1024 * 1024];
    while ((count = fis.read(buffer)) != -1)
    os.write(buffer, 0, count);
  } catch (IOException e) {
    e.printStackTrace();
  } finally {
    if (os != null)
     os.close();
    if (fis != null)
    fis.close();
  }
  return null;
}
两种方法都可以实现,还有一种就是在tomcat下面建立图片文件夹,该可以直接显示出来。


相关标签:mysql

下一篇:.Whatgreatfunitsoundslike___(buy)mycousinatoylorry

上一篇:会声会影X5打不开

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?