1. Extjs圖片顯示的問題
你路徑寫錯了
你用的框架應該是play或者maven吧
對於框架裂譽來說,你的根目錄其實原本就是src/main/webapp
你alert出來的地址代表系統找圖片時的地址是src/main/webapp/src/main/webapp,下面肯定沒有個這個目錄
你控制台訪問也是提示找不到圖片,你可以復制那個找不到的地址,然後把其中的src/main/webapp這個路徑刪除,在瀏覽器里看能不能找到圖片
我覺得你應該是理解錯了項目的根目錄,其實你localhost:8080/sale-web/就已經是在你項目的src/main/webapp這個目錄下鍵兄了,你肆亮段可以試試
希望能幫助到你
2. extjs圖片下載怎麼做
呃,這里說2種方法,具體採納哪種看你自己的需求
web上的圖片保存實際有2種方法
你說你的圖片已經以列沒搜表形式展現出來了,那麼實際上右鍵->圖片另存為就可以滿足要求了
但是你說你已經做了個下載按鈕,那麼比較正規的做法應該這樣
給這個按鈕加一個handler,將圖片的主鍵(路徑,野察信或者能在資料庫查出的id)傳到後台的一個處理頁,由處理頁以流的形式輸出出來,likethis
{
text:'下載',
handler:function(){
location.href='xxx.php?id=xxx'
}
}
由於不知道你的後台用的什麼,此處以php為例
<?php
$id=$_GET['id'];
//資料庫查詢輸出圖片路徑
$file_size=filesize($路徑變數);
$fp=fopen($路徑變數,'r');
header('Content-Type:application/octet-stream');
header('Accept-Ranges:bytes');
header('Accept-Length:'.$file_size);
header('Content-Disposition:attachment;filename='.$圖片名稱變數);
echofread($fp,$file_size);
fclose($fp);
?>
至於說extjs能不能直接用js進行圖片輸出,從我個人經驗來看是沒有的(也許可能是我見識淺薄,如有此類方法,請教教我~)
雖然extjs的chart的確是頌輪有一個把圖片保存為圖片的功能,但是那是js繪出的點陣圖,圖片是直接從內存輸出的,直接圖片輸出的js我確實沒有接觸過
希望幫到你,歡迎追問
3. ExtJS4.0圖片路徑問題,圖片沒顯示,應該放在Eclipse那個目錄(ext和html文件都包放在項目WebRoot下)
你的.custom .x-progress-bar樣式的內容應該有它原來的樣式,但是因為你按照內聯的方式來寫css,所以裡面的這個路徑images/xxx就是不對明猛的了。
方法一:改路徑定位到extjs包裡面運知的這張圖片;
方法二:拷貝圖片到你頁面相對位置的路徑激悄橋
4. extjs 3.4中 怎麼給htmlEdit添加圖片插件 實現圖片上傳功能
首先要使用extjs自帶的HTMLEditor,然後在原有的工具條上添加一個圖片按鈕,點擊這個圖片按鈕要彈出窗口,這個窗口負責實現上傳功能,實現上傳後,要將上傳的圖片路徑添加到HTMLEditor的游標處,並且要以<IMG></IMG>的方式,這樣HTMLEditor才能解析出來。實現代碼如下:
前台JSP頁面
fieldLabel : '商品特性',
id : 'shopSp.spTxms',
name : 'shopSp.spTxms',
xtype : 'StarHtmleditor',
anchor : '93%'
這其中引用了StarHtmleditor,StarHtmleditor.js的代碼如下簡搜,直接將代碼復制下來,然後新建個JS,全復制進去就行了。
var HTMLEditor = Ext.extend(Ext.form.HtmlEditor, {
addImage : function() {
var editor = this;
var imgform = new Ext.FormPanel({
region : 'center',
labelWidth : 55,
frame : true,
bodyStyle : 'padding:5px 5px 0',
autoScroll : true,
border : false,
fileUpload : true,
items : [{
xtype : 'textfield',
fieldLabel : '選擇文件',
id : 'UserFile',
name : 'UserFile',
inputType : 'file',
allowBlank : false,
blankText : '文件不能為空',
anchor : '90%'
}],
buttons : [{
text : '上傳',
handler : function() {
if (!imgform.form.isValid()) {return;}
imgform.form.submit({
waitMsg : '正在上傳......',
url : 'HTMLEditorAddImgCommonAction.action',
success : function(form, action) {
var element = document.createElement("img");
element.src = action.result.fileURL;
if (Ext.isIE) {
editor.insertAtCursor(element.outerHTML);
} else {
var selection = editor.win.getSelection();
if (!selection.isCollapsed) {
selection.deleteFromDocument();
}
selection.getRangeAt(0).insertNode(element);
}
//win.hide();//原始方法,但只能傳一個圖片
頌咐瞎 //更新後的方法
form.reset();
win.close();
},
野空 failure : function(form, action) {
form.reset();
if (action.failureType == Ext.form.Action.SERVER_INVALID)
Ext.MessageBox.alert('警告','上傳失敗',action.result.errors.msg);
}
});
}
}, {
text : '關閉',
handler : function() {
win.close(this);
}
}]
})
var win = new Ext.Window({
title : "上傳圖片",
width : 300,
height : 200,
modal : true,
border : false,
iconCls : "picture.png",
layout : "fit",
items : imgform
});
win.show();
},
createToolbar : function(editor) {
HTMLEditor.superclass.createToolbar.call(this, editor);
this.tb.insertButton(16, {
cls : "x-btn-icon",
icon : "picture.png",
handler : this.addImage,
scope : this
});
}
});
Ext.reg('StarHtmleditor', HTMLEditor);
JS的第一句var HTMLEditor = Ext.extend(Ext.form.HtmlEditor, 網上是沒有var的,不用var不知道為什麼總是報錯,另外JS一定要與JSP的編碼方式一致,要不然報莫名其妙的錯誤,而且錯誤都沒有顯示。
後台java代碼
/****
* HTMLEditor增加上傳圖片功能:
* 1、上傳圖片後,需要將圖片的位置及圖片的名稱返回給前台HTMLEditor
* 2、前台HTMLEditor根據返回的值將圖片顯示出來
* 3、進行統一保存
* @param 上傳圖片功能
* @return JSON結果
* @throws IOException
*/
public void HTMLEditorAddImg() throws IOException {
if(!"".equals(UserFile) && UserFile != null && UserFile.length() > 0){
File path = ImportImg(UserFile, "jpg");
UserFilePath = "../" + path.toString().replaceAll("\\", "/").substring(path.toString().replaceAll("\\", "/").indexOf("FileImg"));
}
this.getResponse().setContentType("text/html");
this.getResponse().getWriter().write("{success:'true',fileURL:'" + UserFilePath + "'}");
}
特別要注意的是路徑問題,路徑問題主要有2點需要注意:
1、前台頁面引用StarHtmleditor.js的路徑一定要正確;
2、Htmleditor上傳的圖片路徑一定要改,因為上傳之後圖片路徑變為http://localhost:8080/,在正常使用中圖片不顯示,要將該地址替換為伺服器的IP地址;替換方法如下:
//獲取本地IP地址,因為extjs的htmleditor上傳的照片路徑有問題,需要將路徑替換為本機IP地址
InetAddress inet = InetAddress.getLocalHost();
shopSp.setSpTxms(shopSp.getSpTxms().replace("localhost", inet.getHostAddress().toString()));
這樣基本就完成了這個HTMLEditor上傳圖片功能。
如圖:
5. 能不能把ExtJs的chart保存為圖片,順便粘下代碼吧
ExtJs chart 使用的叢仿是svg 和 vml畫圖,自然可以保存為圖片,旦鄭凳需要把模旅chart的svg源碼傳到後台轉換svg為圖片
6. 如何將ExtJs中的chart保存為圖片,後台進行。
extjs的chart是web客戶祥猛端的,這個圖形式有客戶端來維護的,是有動態效果的,無法保存為圖片的。
如果想要後天伺服器來維護一個chart那你可以試試用jfreechart,這個可以在瞎晌伺服器端生成一個chart圖,然後保存到本地或者寫到web去展示磨宴鋒。
7. Extjs 如何實現上傳及下載功能。
其實,EXTJS4.0中有自帶的上傳控制項 ,你引用一下就行了
關鍵在於,你上傳的文件是保存在資料庫中,還是保存在伺服器的硬盤上
保存在資料庫中要化成二進制流,但缺點是文件大的時候,資料庫很麻橘毀煩,並且寫進資料庫要轉換,讀出祥歷來也要轉化
如果保存在伺服器上,只在資料庫中保存路徑,然後就可圓宴備以根據路徑來下載,
刪除的時候,也同樣根據路徑要刪除伺服器上的文件和資料庫中的文件信息
祝你好運,如何你不明白的話,我可以給你源碼看一下,之前我做的上傳,下載和刪除功能。
8. extjs多文件上傳,如何做類似這種效果,如下圖: 如何將上傳的文件保存到指定的目錄下回答清晰一點
把你上傳的程序貼出來吧!就一個圖無法講解
9. extjs怎麼顯示圖片
顯示圖片可以直接衡桐數使用 Ext.Img...
//下面代碼直接從API例子中復制
varchangingImage=咐首Ext.create('Ext.Img',{
輪槐src:'http://www.sencha.com/img/20110215-feat-html5.png',
renderTo:Ext.getBody()
});
//
changingImage.setSrc('http://www.sencha.com/img/20110215-feat-perf.png');
10. extjs怎麼使圖片上傳時顯示預覽
這個我做過,不難,思路給你 1.是當文本框內容發生改變的時候就將圖片上傳到伺服器(如果圖片擾轎小,用戶是感覺不到你已經做了上傳操作的。) 2.當伺服器接受到這個圖片的時候,將其放入到一個臨時文件夾中並返回給前台一個圖片路徑(圖片流也可以)。 3.Ajax請求會有一個相應,在伺服器端成功接受到上傳的圖片後,返回給Ajax一個Reponse,這個Reponse里包含一個圖片路徑。 4.ExtJS在前台獲取success里的responseText之後(也就是圖片路徑)將默認圖片的src指向從後台反饋回來的圖片路徑。 現在圖片就會現實出來流程是:用戶選擇圖片--> 觸發文本框改變事件---> 在事件中通過AJAX將圖片上傳給服務芹李哪器---> 伺服器將圖片名稱修改為UUID以免重復,並將此圖片的路徑返回給前台---> 前台AJAX請求的回調函數中獲取responseText,也就是圖片路徑---> 設置默認圖片的src為responseText----> 用戶重新選擇的時候(例如用戶不喜歡這張圖)---> 在文本框改變事件中通過AJAX將圖片上傳(包括先前上傳的圖片名稱)---> 後台根據參數先刪除臨時圖片---> 重復以上的步驟直到用戶確定 需要注意的問題: 1.當用戶改變了圖片之後,需要把上一次的臨時圖片文件刪除掉,以免出現垃圾圖片過多。 2.每嫌碼次上傳圖片的時候要在後面跟上一個隨機參數(因為如果請求路徑和參數相同,瀏覽器不會再繼續發送請求)。通常情況下使用new Date()就可以了例如 "uploadImag.do?method=uploadImage&randomParam="+new Date() 3.圖片太大的話,效果不是很好。 4.當用戶點擊確定後,將臨時文件里的圖片放置到你的正式圖片存放目錄下即可。