Html中img控制元件的src屬性
方式一:
直接給src屬性一個伺服器端資源的地址,img控制元件會自動獲取並解析資源。
方式二:
當訪問的資源不在工程路徑下時,想到的辦法是通過返回給img控制元件位元組流,讓img控制元件解析,開始直接將ajax非同步獲取的位元組流設給了img的src屬性,發現無法顯示圖片,通過http://blog.csdn.net/doulinxu/article/details/59636710的指點,完成通過給src屬性賦予位元組資料來顯示資料,大致為:位元組流先在伺服器端進行Base64編碼,在輸出前需要將MIME的字串位元組輸出,程式碼如下:
@RequestMapping(value="viewDirect") public void viewDirect(@RequestParam String url,HttpServletResponse response) throws Exception { String filePath = baseDir + "/" + url; File file = new File(filePath); if (file.exists()&&file.isFile()) { String suffix = url.substring(url.lastIndexOf("."), url.length()); if (suffix==null) { return; } String metaType = ""; if (suffix.equalsIgnoreCase("jpg")||suffix.equalsIgnoreCase("jpeg")||suffix.equalsIgnoreCase("jpe")) { metaType = "data:image/jpeg;base64,"; }else if (suffix.equalsIgnoreCase("gif")) { metaType = "data:image/gif;base64,"; }else if (suffix.equalsIgnoreCase("bmp")) { metaType = "data:image/bmp;base64,"; }else { metaType = "data:image/jpeg;base64,";//預設解碼方式,不合適 } InputStream inputStream = new FileInputStream(file); ServletOutputStream outputStream = response.getOutputStream(); // outputStream.write(metaType.getBytes()); // int length = -1; // byte[] buffer = new byte[1024]; // while ((length=inputStream.read(buffer, 0, 1024))!=-1) { // byte[] buf; // if (length<1024) { // byte[] remain = new byte[length]; // System.arraycopy(buffer, 0, remain, 0, length); // buf = Base64Utils.encode(remain); // }else { // buf = Base64Utils.encode(buffer); // } // outputStream.write(buf); // } byte[] bytes = new byte[(int) file.length()]; inputStream.read(bytes); outputStream.write(metaType.getBytes());//這一行程式碼直接影響是否將接下來的位元組解析為圖片 outputStream.write(Base64Utils.encode(bytes)); inputStream.close(); outputStream.flush(); outputStream.close(); } }
html程式碼為:
$.get('${pageContext.request.contextPath }/image/viewDirect',{url:imgs[index]},function(data){
$("#img").attr("src",data);
})
方式三:
最直接的方法,第二種方法相當於繞了個彎路,其實直接將連結給src屬性,即使不是伺服器工程下的資源,只要img控制元件通過這個src指定的連結能夠獲取到正確的位元組流,就可以正確解析圖片了。程式碼如下:
html程式碼:
伺服器端程式碼為:$("#img").attr("src",'${pageContext.request.contextPath }/image/viewDirect?url='+imgs[index]);
@RequestMapping(value="viewDirect") public void viewDirect(@RequestParam String url,HttpServletResponse response) throws Exception { String filePath = baseDir + "/" + url; File file = new File(filePath); if (file.exists()&&file.isFile()) { InputStream inputStream = new FileInputStream(file); ServletOutputStream outputStream = response.getOutputStream(); //方式一 int length = -1; byte[] buffer = new byte[1024]; while ((length=inputStream.read(buffer, 0, 1024))!=-1) { outputStream.write(buffer,0,length); } //方式二 // BufferedImage image = ImageIO.read(file); // ImageIO.write(image,"JPEG",response.getOutputStream()); //方式三 // byte[] bytes = new byte[(int) file.length()]; // inputStream.read(bytes); // // outputStream.write(metaType.getBytes());//這一行程式碼直接影響是否將接下來的位元組解析為圖片 //// outputStream.write(Base64Utils.encode(bytes)); // outputStream.write(bytes); inputStream.close(); outputStream.flush(); outputStream.close(); } }
相關推薦
Html中img控制元件的src屬性
方式一:直接給src屬性一個伺服器端資源的地址,img控制元件會自動獲取並解析資源。方式二:當訪問的資源不在工程路徑下時,想到的辦法是通過返回給img控制元件位元組流,讓img控制元件解析,開始直接將ajax非同步獲取的位元組流設給了img的src屬性,發現無法顯示圖片,通過
HTML中img標籤的src屬性絕對路徑問題解決辦法,完全解決!
需求:有時候自己的專案img的src路徑需要用到本地某資料夾下的圖片,而不是直接使用專案根目錄下的圖片。 場景:eclipse,tomcat,html,img,src,java 注意:不需要尋找tomcat真實路徑下的server.xml去修改,這個地方不需要修改。 解決辦法:1、在ec
base64編碼的圖片在HTML的img控制元件中顯示
最近在做一個移動web app專案的開發,將客戶經理與客戶的聊天功能搬到手機中(類似微信聊天),其中客戶經理的頭像由原電腦端的聊天專案組同事提供。他們儲存在資料庫中的圖片資訊為varbinary型別的數值,也就是以二進位制資料儲存。自己寫了個根據客戶經理的ID查詢其頭像資訊
C#正則表示式提取HTML中IMG標籤的SRC地址
原文:http://blog.csdn.net/smeller/article/details/7108502 一般來說一個 HTML 文件有很多標籤,比如“<html>”、“<body>”、“<table>”等,想把文件中的 img 標籤提取出來並不
Android開發——Java更改ImageView控制元件src屬性
Android開發——Java更改ImageView控制元件src屬性 一、ImageView控制元件 1、先在drawable資料夾中放置一個名叫icon的圖片,再在xml檔案中建立一個ImageView <ImageView android:id="@+
正則表示式提取HTML中IMG標籤的SRC地址
一般來說一個 HTML 文件有很多標籤,比如“<html>”、“<body>”、“<table>”等,想把文件中的 img 標籤提取出來並不是一件容易的事。由於 img 標籤樣式變化多端,使提取的時候用程式尋找並不容易。於是想要尋找它們就
ASP.NET中 ValidationGroup[控制元件的屬性]:分組驗證的使用
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Dome5.aspx.cs" Inherits="Dome5" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit
JavaScript查詢Html字串中的img標籤替換src屬性的內容
JavaScript示例程式碼如下: var newContent= content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi,function(match,capture){ //capture
webpack 處理html中img的src引入的圖片
webpack在管理模組,處理各種資源上都是無往不利,但唯獨在處理html上比較困難,不識別html中img標籤src引入的圖片。 html-webpack-plugin這種外掛輔助處理html非常好,但卻仍然未解決html程式碼中的圖片問題,未免美中不足。在遍尋開源模
SOUI中使用img控制元件顯示jpg圖片的方法
1.標頭檔案 #include "../../controls.extend/FileHelper.h" #include <GdiPlus.h> #pragma comment(lib,"gdiplus") 2.建立控制元件 SImageWnd* m_pI
ElementUI中Switch控制元件屬性值為Number時報錯的問題
ElementUI中Switch控制元件屬性值為Number時報錯問題 1.使用element-ui中switch控制元件時,如果為該控制元件屬性值賦值為數字時,這時瀏覽器會報錯,但是還是能正常顯示效果,為了解除這個報錯,我們可以將該控制元件屬性值為數字的屬性改為單向繫結:如下
C# WinForm中DateTimePicker控制元件的Text屬性和Value屬性
在WinForm中經常會用到DateTimePicker這個控制元件,用這個控制元件獲取時間會使用到Text屬性或者Value屬性。 關於這兩個屬性,還是存在著一些的不同,在這裡簡單的測試和總結一下。
C#中combobox 控制元件屬性、事件、方法
一 、combobox 屬性、事件、方法公共屬性 名稱 說明 AccessibilityObject 獲取分配給該控制元件的 AccessibleObject。AccessibleDefaultActionDescription 獲取或設定控制元件的預設操作說明,供輔助功能客戶端應用程式使用。Acces
HTML中img標籤src路徑的值需要設定成一個變數來表示
在Java開發中,有時候會遇到在顯示圖片時不需要給圖片的src路徑設定成固定的,而是需要寫入從後臺資料庫傳入的路徑變數,下面給出瞭解決此問題的方法。<script> var pictureUrl = data.url;//後臺傳入的圖片路徑,url指的是資料
WPF 中PasswordBox控制元件的Password屬性不能Binding問題解決方法
最近用到了PasswordBox控制元件,但是發現Password屬性不能Binding,因為它不是依賴屬性,在網上找了找解決方法,自己做了小Demo,方便以後使用。 一、前臺檔案內容 <Window x:Class="PasswordBoxDemo.MainWin
html5中新增表單控制元件和屬性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <ti
MFC在VS2010中為ActiveX控制元件新增屬性
ActiveX控制元件有四種屬性: (1)Stock:為每個控制元件提供的標準屬性,如字型或顏色。 (2)Ambient:圍繞控制元件的環境屬性——已被置入容器的屬性。這些屬性不能被更改,但控制元件可以使用它們調整自己的屬性。 (3)Extended:這些是由容器處
HTML中position的五種屬性
ati 瀏覽器 pos 正常 posit 就是 osi 內聯 排列 一、默認定位static: position的默認值,一般不設置position屬性時,會按照正常的文檔流進行排列。 二、相對定位relative: 1、relative 就是相對元素static定位時的位
C#Form.SplitContainer中清除控制元件textbox值(窗體.容器.控制元件)
文章目錄 問題背景 問題程式碼 問題解決 正確清除程式碼 問題延申 問題背景 早上在完善不確定度計算器時,想要清空實驗資料輸入時所有textbox控制元件值。 問題程式碼
[Swift]ViewController中xib控制元件為空
在ViewController的xib中定義了一些控制元件,然後在使用的時候會因為這個控制元件為空而崩潰,報錯為: Swift Error fatal error: unexpectedly found nil while unwrapping an Optional value