標(biāo)簽,只要src指定相應(yīng)路徑就能夠顯示圖片,但是這里有一個(gè)限制條件:如果項(xiàng)目被部署在服務(wù)器上(比如Javaweb項(xiàng)目部署在tomcat下)運(yùn)行時(shí),src路徑只能指定項(xiàng)目中的圖片。比如表示顯示該項(xiàng)目下common目錄下的名為java.jpg的圖片。而如果你希望顯示服務(wù)器某個(gè)盤符下的指定圖片,比如,即使該目錄下有指定圖片,這" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

JSP實(shí)現(xiàn)指定盤符路徑下的圖片顯示

系統(tǒng) 2194 0

開發(fā)人員都知道<img src="">標(biāo)簽,只要src指定相應(yīng)路徑就能夠顯示圖片,但是這里有一個(gè)限制條件:如果項(xiàng)目被部署在服務(wù)器上(比如Java web項(xiàng)目部署在tomcat下)運(yùn)行時(shí),src路徑只能指定項(xiàng)目中的圖片。比如<img src="/common/java.jpg">表示顯示該項(xiàng)目下common目錄下的名為java.jpg的圖片。而如果你希望顯示服務(wù)器某個(gè)盤符下的指定圖片,比如<img src="c:\xxx\xx.jpg">,即使該目錄下有指定圖片,這樣寫也是找不到該圖片的,因?yàn)槌鲇诎踩钥紤]不能讀取當(dāng)前項(xiàng)目以外的數(shù)據(jù)。

最近在做一個(gè)小項(xiàng)目玩,有個(gè)添加用戶功能,我需要上傳用戶圖片后在頁(yè)面顯示該用戶圖片。上傳功能已實(shí)現(xiàn),代碼在這里可以看到: http://blessht.iteye.com/blog/1405057 ,為了防止圖片丟失,我的圖片是上傳到硬盤指定目錄下,現(xiàn)在的難題是如何把圖片顯示出來(lái)。

在網(wǎng)上看了很多解決方案,其中有一種方案我覺(jué)得很好:img標(biāo)簽的src不是圖片路徑,而是一個(gè)servlet請(qǐng)求,該servlet通過(guò)java代碼讀取圖片并以流的形式將圖片數(shù)據(jù)打印到頁(yè)面,這樣就能顯示指定盤符下的圖片了。

首先看下運(yùn)行效果:


JSP實(shí)現(xiàn)指定盤符路徑下的圖片顯示


JSP實(shí)現(xiàn)指定盤符路徑下的圖片顯示
?
JSP實(shí)現(xiàn)指定盤符路徑下的圖片顯示
?
JSP實(shí)現(xiàn)指定盤符路徑下的圖片顯示

?

?

?

  • 實(shí)現(xiàn)說(shuō)明
前面圖顯示很清楚:首先用戶添加頁(yè)面點(diǎn)擊“上傳”按鈕顯示上傳界面,再指定相應(yīng)圖片點(diǎn)擊上傳,上傳成功后關(guān)閉窗口并且將上傳文件相應(yīng)信息通過(guò)js回調(diào)函數(shù)的形式返回到父窗體。父窗體獲取參數(shù)再通過(guò)jquery ajax的load方法加載一個(gè)jsp頁(yè)面,該jsp頁(yè)面實(shí)際只有一個(gè)<img>標(biāo)簽,用于顯示圖片,這樣通過(guò)異步的形式就把指定圖片找出來(lái)了。
首先是父窗體,用戶添加頁(yè)面的部分代碼:
      <script>

......

function openUpload_(){
	openUpload(null,'JPG,GIF,JPEG,PNG','5',callback);
}

/**
 * 回調(diào)函數(shù),獲取上傳文件信息
 * realName真實(shí)文件名
 * saveName文件保存名
 * maxSize文件實(shí)際大小
 */
function callback(realName,saveName,maxSize){
	$("#photo_").val(saveName);
	$("#div_photo").load(root+"/showImage.jsp?saveName="+saveName+"&width_=200&height_=200");
}
</script>

......

<tr>
			<td>頭像:</td>
			<td>
				<input type="hidden" name="photo" id="photo_"></input>
				<input type="button" onclick="openUpload_()" value="上傳"/>
			</td>
		</tr>
		<tr>
			<td colspan="2">
				<div id="div_photo"></div>
			</td>
		</tr>
    
? 然后是showImage.jsp的代碼
      <body>
<%
	String root = request.getContextPath();
	String saveName = request.getParameter("saveName");
	String width_ = request.getParameter("width_");
	String height_ = request.getParameter("height_");
%>
<img src="<%=root%>/CommonController.jhtml?method=showImage&saveName=<%=saveName%>" width="<%=width_%>" height="<%=height_%>">
</body>
    
? 最后是 CommonController類的 showImage方法用于處理圖片流數(shù)據(jù):
      /**
	 * 顯示圖片
	 * @param request
	 * @param response
	 * @return
	 * @throws ServletException
	 * @throws IOException
	 */
	public ModeAndView showImage(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		String saveName = request.getParameter("saveName");
		
		FileInputStream hFile = new FileInputStream(fileUploadPro.getProperty("filePath")+saveName); // 以byte流的方式打開文件 d:\1.gif 
		int i=hFile.available(); //得到文件大小 
		byte data[]=new byte[i]; 
		hFile.read(data);  //讀數(shù)據(jù) 
		response.setContentType("image/*"); //設(shè)置返回的文件類型 
		OutputStream toClient=response.getOutputStream(); //得到向客戶端輸出二進(jìn)制數(shù)據(jù)的對(duì)象 
		toClient.write(data);  //輸出數(shù)據(jù) 
		
		toClient.flush();
		toClient.close(); 
		hFile.close(); 
		return null;
	}
    
?
至此一個(gè)困擾我兩天的問(wèn)題終于解決了,目前還剩下一個(gè)錯(cuò)誤就是:每次顯示圖片時(shí)會(huì)報(bào)一個(gè)錯(cuò)誤:java.lang.IllegalStateException: getOutputStream() has already been called for this response,希望有解決方法的朋友指點(diǎn)一下,謝謝!另外還有什么好的辦法,大家也可以分享一下!
注:目前上傳顯示圖片在IE8下可用,其它瀏覽器不能保證。

JSP實(shí)現(xiàn)指定盤符路徑下的圖片顯示


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 天天综合射 | 日韩一区二区在线观看 | 亚洲日韩欧美一区二区在线 | 亚洲综合激情 | 美女超爽久久久久网站 | 欧美日韩激情在线一区二区 | 日本一级毛片视频无遮挡免费 | 天天做天天玩天天爽天天 | 一级片按摩 | 久久九九99热这里只有精品 | 精品亚洲无人区一区二区 | 欧美精选在线 | 黄色免费观看视频网站 | 亚洲欧美日韩在线观看二区 | 狠狠干艹| 成人欧美视频 | 国产a级一级久久毛片 | 成人激情开心网 | 香蕉视频在线观看黄 | 久久九九精品一区二区 | 深夜福利免费观看 | 男人的网站在线观看 | 欧美日韩激情在线 | 日本一区二区三区在线 观看网站 | 色综合色狠狠天天久久婷婷基地 | 毛片大全免费 | 精品伊人久久久 | 五月天综合久久 | 亚洲一区二区三区免费看 | 青青青青久久精品国产一百度 | 四虎国产成人亚洲精品 | 国产精品久久久久影院色 | 久久免费看片 | 久久精品在线视频 | 91在线免费播放 | 亚洲欧美中文日韩在线 | 国产臀控福利视频在线 | 波多野结衣在线一区二区 | 午夜国产在线 | 成人午夜精品网站在线观看 | 天天爽视频 |