jsp页面
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<link rel="stylesheet" href="<c:url value='/plugin/ztree-v3.5.14/css/zTreeStyle/zTreeStyle.css'/>" type="text/css">
<script type="text/javascript" src="<c:url value='/plugin/ztree-v3.5.14/js/jquery.ztree.core-3.5.js'/>"></script>
<script type="text/javascript" src="<c:url value='/plugin/ztree-v3.5.14/js/jquery.ztree.excheck-3.5.js'/>"></script>
<script type="text/javascript" src="<c:url value='/plugin/ztree-v3.5.14/js/jquery.ztree.exedit-3.5.js'/>"></script>
<script language="javascript" type="text/javascript" src="<c:url value='/plugin/artDialog4.1.7/jquery.artDialog.js?skin=simple'/>"></script>
<script language="javascript" type="text/javascript" src="<c:url value='/plugin/artDialog4.1.7/plugins/iframeTools.js'/>"></script>
<script language= javascript type= text/javascript src="<c:url value='/default/scripts/jquery.form.js'/>" ></script>
<style>
<!--
input[type=text],select,textarea {width:300px;
}.mouse_pointer{cursor:pointer;}label.align_top {vertical-align: top;}label.align_mid {vertical-align: middle;}textarea {margin:0;padding:0;height:50px;}#editCourse_table {border: transparent;border-collapse: collapse;font-family: Arial,Helvetica,sans-serif;margin-top: 10px;}.editCourse_table td{/*background-color: #EFEFEF;*/border: transparent;padding: 5px 15px 5px 5px;vertical-align: middle;width:65%;}.editCourse_table td:first-child{text-align: right;width:20%;}.editCourse_table td:last-child {text-align:left;width:12px;}.notNullStar {vertical-align: sub;}.hidden {display: none;}
-->
</style><script>var saved;//值改变函数function valueChanged(elem){saved = false;}function reDisplay( wordDicObj ){$("input[name='wordDictionaryVo.word']").val(wordDicObj.word);$("input[name='wordDictionaryVo.abbreviative']").each(function(){$(this).removeAttr("checked");});if( wordDicObj.abbreviative == true ){$("input[name='wordDictionaryVo.abbreviative'][value='true']").attr("checked", true);}else{$("input[name='wordDictionaryVo.abbreviative'][value='false']").attr("checked", true);}//释义if( wordDicObj.wordExplain != null && wordDicObj.wordExplain != "" ){$("textarea[name='wordDictionaryVo.wordExplain']").val(wordDicObj.wordExplain);}if( wordDicObj.simpleExplain != null && wordDicObj.simpleExplain != "" ){$("textarea[name='wordDictionaryVo.simpleExplain']").val(wordDicObj.simpleExplain);}$("#wordImage").attr("src", "<c:url value='/worddictionary/getImageById.action?id='/>" + wordDicObj.id);if( wordDicObj.ukPhoneticSymbol != null && wordDicObj.ukPhoneticSymbol != "" ){$("input[name='wordDictionaryVo.ukPhoneticSymbol']").val(wordDicObj.ukPhoneticSymbol);}if( wordDicObj.ukPhoneSplit != null && wordDicObj.ukPhoneSplit != "" ){$("input[name='wordDictionaryVo.ukPhoneSplit']").val(wordDicObj.ukPhoneSplit);}if( wordDicObj.ukWordSplit != null && wordDicObj.ukWordSplit != "" ){$("input[name='wordDictionaryVo.ukWordSplit']").val(wordDicObj.ukWordSplit);}if( wordDicObj.ukAudioExist != null && wordDicObj.ukAudioExist == true ){$("#ukspeaker").attr("audioUrl","<c:url value='/worddictionary/getAudioByIdAndCountry.action?id='/>" + wordDicObj.id + "&countryType=uk");$("#ukspeaker").show();}else{$("#ukspeaker").attr("audioUrl","");$("#ukspeaker").hide();}if( wordDicObj.usPhoneticSymbol != null && wordDicObj.usPhoneticSymbol != "" ){$("input[name='wordDictionaryVo.usPhoneticSymbol']").val(wordDicObj.usPhoneticSymbol);}if( wordDicObj.usPhoneSplit != null && wordDicObj.usPhoneSplit != "" ){$("input[name='wordDictionaryVo.usPhoneSplit']").val(wordDicObj.usPhoneSplit);}if( wordDicObj.usWordSplit != null && wordDicObj.usWordSplit != "" ){$("input[name='wordDictionaryVo.usWordSplit']").val(wordDicObj.usWordSplit);}if( wordDicObj.usAudioExist != null && wordDicObj.usAudioExist == true ){$("#usspeaker").attr("audioUrl","<c:url value='/worddictionary/getAudioByIdAndCountry.action?id='/>" + wordDicObj.id + "&countryType=us");$("#usspeaker").show();}else{$("#usspeaker").attr("audioUrl","");$("#usspeaker").hide();}}function clearDisplay(){$("input[name='wordDictionaryVo.abbreviative']").each(function(){$(this).removeAttr("checked");});$("input[name='wordDictionaryVo.abbreviative'][value='false']").attr("checked", true);$("textarea[name='wordDictionaryVo.wordExplain']").val("");$("textarea[name='wordDictionaryVo.simpleExplain']").val("");$("#wordImage").attr("src", "<c:url value='/worddictionary/getImageById.action?id='/>");$("input[name='wordDictionaryVo.ukPhoneticSymbol']").val("");$("input[name='wordDictionaryVo.ukPhoneSplit']").val("");$("input[name='wordDictionaryVo.ukWordSplit']").val("");$("#ukspeaker").attr("audioUrl","");$("#ukspeaker").hide();$("input[name='wordDictionaryVo.usPhoneticSymbol']").val("");$("input[name='wordDictionaryVo.usPhoneSplit']").val("");$("input[name='wordDictionaryVo.usWordSplit']").val("");$("#usspeaker").attr("audioUrl","");$("#usspeaker").hide();}$(function(){//radio输入改变事件$("input[type=radio]").change(function(){valueChanged(this);});$("input[type=text],textarea").bind("input propertychange",function(){valueChanged(this);});$("#word").keydown(function( evt ){if( evt.keyCode == 13 ){$("#queryButton").trigger("click");}});//单词查询Button$("#queryButton").click(function(){if($("#wordForm").validate().form()){var word = $.trim($("#word").val());$.ajax({url: "<s:url value='/worddictionary/getWordDictionaryByWord.action'/>",type: "post",async:true,data:{word:word},dataType: "json",contentType:"application/x-www-form-urlencoded; charset=UTF-8" , //success: function( rtnValue ){if(rtnValue== null ){clearDisplay();art.tips("单词或词组不存在,赶紧添加吧!",2);}else{clearDisplay();reDisplay( rtnValue );}},error: function(reqObj, strError, strObj){}});}});$.validator.addMethod("validChar", function(value, element, params){value = $.trim(value);if (/^[\w|\s|\-|']*$/.test(value)) {return true;}return false;},"单词或词组包含非法字符" );$("#wordForm").validate({//显示错误信息用的标签类型errorElement: "em",//验证规则rules: {"wordDictionaryVo.word":{required: true,maxlength:256,validChar: true}},messages: {"wordDictionaryVo.word":{required:"请输入单词或词组",maxlength:"单词或词组总长度太长",checkBlank:"单词或词组不能为空串",validChar:"单词或词组包含非法字符"}}});//保存$("#saveButton").click(function(){if(!$("#wordForm").validate().form()){var errorMessage = "";$("em.error").each(function(){errorMessage += $(this).text() + "<br/>";});art.tips(errorMessage,2.5);return;}if(saved){art.tips("已成功保存或无更改,无需再次保存",2.5);return;}$("#wordForm").ajaxSubmit({type:"post",dataType:"json",success: function(response) {if(response.message.saveSuccess){art.tips("保存成功!",1.5);saved = true;}else{art.tips("保存失败,"+response.message.errorMsg,2.5);}},error:function(response){art.tips("保存失败,网络错误",2.5);}});});//上传图片$("#uploadImage").click(function(evt){evt.preventDefault();var val = $(this).attr("name");art.dialog.data('name', val);art.dialog.open('<c:url value="/worddictionary/uploadImageDialog.action"/>',{id: 'iframedialogUpload',title: '',lock: true,width:400,drag:false,height:150,init: function () {var iframe = this.iframe.contentWindow; //获取子页面对象var top = art.dialog.top;// 获取父页面对象}},false);});//上传音频$("#uploadUKAudio,#uploadUSAudio").click(function(evt){evt.preventDefault();var val = $(this).attr("name");art.dialog.data('name', val);art.dialog.open('<c:url value="/worddictionary/uploadAudioDialog.action"/>',{id: 'iframedialogUpload',title: '',lock: true,width:400,drag:false,height:150,init: function () {var iframe = this.iframe.contentWindow; //获取子页面对象var top = art.dialog.top;// 获取父页面对象}},false);});$(".speaker").click(function(){var audioUrl = $(this).attr("audioUrl");thisMovie("wordDictionary_mp3Player").playAudio(audioUrl);});});function changeImage(name,imageName){$("#"+name).attr("src","<s:url value='/temp/images/'/>"+imageName);$("#"+name +"_hidden").val(imageName);saved = false;
}function changeAudio(name, audioName){var audioUrl = "<c:url value='/worddictionary/getAudioByFileName.action?audioServerFileName='/>" + audioName;$("#"+name).attr("audioUrl", audioUrl);$("#"+name).show();$("#"+name +"_hidden").val(audioName);saved = false;
}function thisMovie(movieName) {if (navigator.appName.indexOf("Microsoft") != -1) {return window[movieName];}else {return document[movieName];}
}</script><!-- 隐藏的ActionScript播放器类 -->
<!--
<object style="width: 1px; height: 1px;position: absolute; top:0px; left:0px;" type="application/x-shockwave-flash" data="<c:url value='/flash/NetStreamAudioPlayerAS.swf?onLoadCompleted=onPlayerCompleted'/>" name="wordDictionaryAudioPlayer" id="wordDictionaryAudioPlayer" ><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="<c:url value='/flash/NetStreamAudioPlayerAS.swf?onLoadCompleted=onPlayerCompleted'/>" /><param name="quality" value="high" /><param name="scale" value="noScale" /><param name="wmode" value="transparent" />
</object>
--><object style="width: 0px; height: 0px;" type="application/x-shockwave-flash" data="/flash/Mp3PlayerAS.swf" name="wordDictionary_mp3Player" id="wordDictionary_mp3Player" ><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="/flash/Mp3PlayerAS.swf" /><param name="visible" value="false" />
</object><span class="font-18">单词编辑</span>
<form action="<c:url value='/worddictionary/saveWordDictionary.action'/>" method="post" id="wordForm" name="wordForm"><div style="width:860px;"><table id="editCourse_table" class="editCourse_table"><!-- 编辑区,公有属性 --><tbody><tr><td><label><span class="font-red notNullStar">*</span>单词:</label></td><td><s:textfield id="word" name="wordDictionaryVo.word"/><input type="button" class="button" name="queryButton" value="查询" id="queryButton"/></td></tr><tr><td><label>是否是缩写:</label></td><td><input type="radio" name="wordDictionaryVo.abbreviative" value="false" checked/>否<input type="radio" name="wordDictionaryVo.abbreviative" value="true"/>是</td></tr><tr><td><label>释义:</label></td><td><s:textarea id="wordExplain" cols="50" name="wordDictionaryVo.wordExplain" /></td></tr><tr><td><label>简单释义:</label></td><td><s:textarea id="simpleExplain" cols="50" name="wordDictionaryVo.simpleExplain" /></td></tr><tr><td><label for="iconImage" class="align_top">图片:</label></td><td><img id="wordImage" style="width:140px;height:210px;border: 1px black solid;" src="<c:url value='/worddictionary/getImageById.action?id='/>${wordDictionaryVo.id}"/><s:hidden id="wordImage_hidden" name="wordDictionaryVo.imageServerFileName" onpropertychange="valueChanged(this)"/><a href="#" id="uploadImage" name="wordImage">上传图片</a></td></tr><tr><td><label>英式音标:</label></td><td><s:textfield id="ukPhoneticSymbol" name="wordDictionaryVo.ukPhoneticSymbol"/></td></tr><tr><td><label>英式发音音标分解:</label></td><td><s:textfield id="ukPhoneSplit" name="wordDictionaryVo.ukPhoneSplit"/></td></tr><tr><td><label>英式发音单词分解:</label></td><td><s:textfield id="ukWordSplit" name="wordDictionaryVo.ukWordSplit"/></td></tr><tr><td><label>英式发音:</label></td><td><input id="ukspeaker" class="icon-button speaker" audioUrl="" audioType="mp3" type="button" style="display:none;"><s:hidden id="ukspeaker_hidden" name="wordDictionaryVo.ukAudioServerFileName"/><a href="#" id="uploadUKAudio" name="ukspeaker">上传音频</a></td></tr><tr><td><label>美式音标:</label></td><td><s:textfield id="usPhoneticSymbol" name="wordDictionaryVo.usPhoneticSymbol"/></td></tr><tr><td><label>美式发音音标分解:</label></td><td><s:textfield id="usPhoneSplit" name="wordDictionaryVo.usPhoneSplit"/></td></tr><tr><td><label>美式发音单词分解:</label></td><td><s:textfield id="usWordSplit" name="wordDictionaryVo.usWordSplit"/></td></tr><tr><td><label>美式发音:</label></td><td><input id="usspeaker" class="icon-button speaker" audioUrl="" audioType="mp3" type="button" style="display:none;"><s:hidden id="usspeaker_hidden" name="wordDictionaryVo.usAudioServerFileName"/><a href="#" id="uploadUSAudio" name="usspeaker">上传音频</a></td></tr><tr><td></td><td><input type="button" class="button" name="saveButton" value="保存" id="saveButton"/></td></tr></tbody></table></div></form>
Action XML配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd">
<struts><package name="worddictionary" namespace="/worddictionary" extends="web-default"><!-- 到编辑单词主页--><action name="editWordDictionary" class="newWordDictionaryAction" method="editWordDictionary"><result name="success" type="tiles">editWordDictionary</result></action><!--根据id获取图片--><action name="getImageById" class="newWordDictionaryAction" method="getImageById"><result name="success" type="stream"> <param name="contentType">image/jpeg</param> <param name="inputName">imageStream</param> <param name="bufferSize">2048</param> </result></action><!-- 根据单词或词组查询字典--><action name="getWordDictionaryByWord" class="newWordDictionaryAction" method="getWordDictionaryByWord"><result name="ajax" type="json"><param name="include">wordDictionaryVo</param></result></action><!-- 保存单词或词组到字典--><action name="saveWordDictionary" class="newWordDictionaryAction" method="saveWordDictionary"><result name="ajax" type="jsonmessage"><param name="message">message</param></result></action><!-- 上传图片到server弹出页面--><action name="uploadImageDialog" class="newWordDictionaryAction" method="uploadImageDialog"><result name="success" type="tiles">uploadImageDialog</result></action><!-- 保存单词或词组到字典--><action name="uploadImageByAjax" class="newWordDictionaryAction" method="uploadImageByAjax"><result name="ajax" type="jsonmessage"><param name="message">message</param></result></action><!-- 上传音频到server弹出页面--><action name="uploadAudioDialog" class="newWordDictionaryAction" method="uploadAudioDialog"><result name="success" type="tiles">uploadAudioDialog</result></action><!-- 上传音频--><action name="uploadAudioByAjax" class="newWordDictionaryAction" method="uploadAudioByAjax"><result name="ajax" type="jsonmessage"><param name="message">message</param></result></action><!-- 根据ID和国家获取音频--><action name="getAudioByIdAndCountry" class="newWordDictionaryAction" method="getAudioByIdAndCountry"><result name="success" type="stream"> <param name="contentType">audio/mp3</param> <param name="inputName">audioStream</param> <param name="bufferSize">2048</param> </result></action><!-- 根据Server端的文件获取音频--><action name="getAudioByFileName" class="newWordDictionaryAction" method="getAudioByFileName"><result name="success" type="stream"> <param name="contentType">audio/mp3</param> <param name="inputName">audioStream</param> <param name="bufferSize">2048</param> </result></action></package>
</struts>
Action类
package com.wisemen.hhb.module.worddictionary.action;import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONObject;
import org.apache.commons.io.FileUtils;
import com.wisemen.framework.server.action.BaseAction;
import com.wisemen.framework.server.exception.ActionException;
import com.wisemen.framework.util.StringUtils;
import com.wisemen.hhb.module.base.domain.WordDictionary;
import com.wisemen.hhb.module.base.vo.WordDictionaryVo;
import com.wisemen.hhb.module.worddictionary.biz.IWordDictionaryBiz;
import com.wisemen.hhb.module.worddictionary.util.WordDictionaryUtil;public class WordDictionaryAction extends BaseAction {private static final long serialVersionUID = 1L;private static final String DEFAULT_WORD_IMG_PATH="images/word_default.png";private static final String COUNTRY_UK = "uk";private static final String COUNTRY_US = "us";/*** 字典ID*/private String id;/*** 单词或词组*/private String word;/*** 字典Biz*/private IWordDictionaryBiz wordDictionaryBiz;/**rtmp服务器地址*/private String rtmpServerUrl;private ByteArrayInputStream imageStream;private ByteArrayInputStream audioStream;private Boolean useDefault = true;private WordDictionaryVo wordDictionaryVo;/**上传的图片文件*/private File file;/**文件名*/private String fileFileName;private String countryType;/*** 保存在Server端,音频的文件名*/private String audioServerFileName;//------------------------------get/set--------------------------public String getId() {return id;}public void setId(String id) {this.id = id;}public String getWord() {return word;}public void setWord(String word) {this.word = word;}public IWordDictionaryBiz getWordDictionaryBiz() {return wordDictionaryBiz;}public void setWordDictionaryBiz(IWordDictionaryBiz wordDictionaryBiz) {this.wordDictionaryBiz = wordDictionaryBiz;}public String getRtmpServerUrl() {return rtmpServerUrl;}public void setRtmpServerUrl(String rtmpServerUrl) {this.rtmpServerUrl = rtmpServerUrl;}public ByteArrayInputStream getImageStream() {return imageStream;}public void setImageStream(ByteArrayInputStream imageStream) {this.imageStream = imageStream;}public Boolean getUseDefault() {return useDefault;}public void setUseDefault(Boolean useDefault) {this.useDefault = useDefault;}public WordDictionaryVo getWordDictionaryVo() {return wordDictionaryVo;}public void setWordDictionaryVo(WordDictionaryVo wordDictionaryVo) {this.wordDictionaryVo = wordDictionaryVo;}public File getFile() {return file;}public void setFile(File file) {this.file = file;}public String getFileFileName() {return fileFileName;}public void setFileFileName(String fileFileName) {this.fileFileName = fileFileName;}public ByteArrayInputStream getAudioStream() {return audioStream;}public void setAudioStream(ByteArrayInputStream audioStream) {this.audioStream = audioStream;}public String getCountryType() {return countryType;}public void setCountryType(String countryType) {this.countryType = countryType;}public String getAudioServerFileName() {return audioServerFileName;}public void setAudioServerFileName(String audioServerFileName) {this.audioServerFileName = audioServerFileName;}//------------------------------get/set--------------------------/*** 进入单词编辑页*/public String editWordDictionary(){return SUCCESS;}/*** * <p>Description:字典的图片</p>* <p>Paramenter:</p>* <p>Return:</p>* <p>Exception:</p>* <p>Modified History: </p>*/public String getImageById(){boolean useDefaultImage = false;WordDictionary wordDictionary = null;logger.debug("id is "+id);//判断id是否为空if(StringUtils.isEmpty(id)){useDefaultImage = true;}else{wordDictionary = wordDictionaryBiz.getWordDictionaryById(id);}if(null == wordDictionary || null == wordDictionary.getImage() ){useDefaultImage = true;}if(useDefaultImage == true && useDefault == true){String path = request.getSession().getServletContext().getRealPath("/");String imagePath = path + DEFAULT_WORD_IMG_PATH;logger.debug("default word imagePath : " + imagePath);try {imageStream = new ByteArrayInputStream(FileUtils.readFileToByteArray(new File(imagePath)));} catch (IOException e) {e.printStackTrace();}} else {imageStream = new ByteArrayInputStream(wordDictionary.getImage());}return SUCCESS;}/*** * <p>Description:通过单词获取字典对象</p>* <p>Paramenter:</p>* <p>Return:</p>* <p>Exception:</p>* <p>Modified History: </p>*/public String getWordDictionaryByWord(){wordDictionaryVo = wordDictionaryBiz.getWordDictionaryByWord(word);return AJAX_RETURN_TYPE;}/*** * <p>Description:保存单词到字典</p>* <p>Paramenter:</p>* <p>Return:</p>* <p>Exception:</p>* <p>Modified History: </p>*/public String saveWordDictionary(){boolean saveSuccess = true;String errorMsg = "";try{String contextPath = request.getSession().getServletContext().getRealPath("/");wordDictionaryBiz.saveWordDictionary(wordDictionaryVo, contextPath);}catch( Exception e){logger.error( "保存词典错误:" + e.getMessage() );saveSuccess = false;errorMsg = e.getMessage() ;}Map<String, Object> jsonMap = new HashMap<String,Object>();jsonMap.put("saveSuccess", saveSuccess);jsonMap.put("errorMsg", errorMsg);message = JSONObject.fromObject(jsonMap).toString();return AJAX_RETURN_TYPE;}/*** * <p>Description:上传图片对话框</p>* <p>Paramenter:</p>* <p>Return:</p>* <p>Exception:</p>* <p>Modified History: </p>*/public String uploadImageDialog(){return SUCCESS;}/*** 异步上传图片文件到Server* @return* @author ShiJiapeng* @throws IOException */public String uploadImageByAjax() throws IOException{JSONObject json = new JSONObject();if(file == null || file.length() <= 0 || StringUtils.isEmpty(fileFileName)){json.put("success", false);json.put("message", "文件为空,请重新上传");message = json.toString();return AJAX_RETURN_TYPE; }//获取文件后缀名String contextPath = request.getSession().getServletContext().getRealPath("/");String tempFileName = WordDictionaryUtil.createTempFileName(fileFileName);try{FileUtils.copyFile(file, new File(contextPath+ WordDictionaryUtil.TEMP_IMAGES_PATH+tempFileName));}catch( Exception e){logger.error( "上传图片错误:" + e.getMessage() );json.put("success", false);json.put("errorMsg", e.getMessage());message = json.toString();return AJAX_RETURN_TYPE;}json.put("success", true);json.put("imageName", tempFileName);message = json.toString();//防止IE下变成下载文件super.getServletResponse().setContentType("text/html");super.getServletResponse().getWriter().write(message);return null;}/*** * <p>Description:上传图片对话框</p>* <p>Paramenter:</p>* <p>Return:</p>* <p>Exception:</p>* <p>Modified History: </p>*/public String uploadAudioDialog(){return SUCCESS;}/*** * <p>Description:异步上传音频文件到Server</p>* <p>Paramenter:</p>* <p>Return:</p>* <p>Exception:</p>* <p>Modified History: </p>*/public String uploadAudioByAjax() throws IOException{JSONObject json = new JSONObject();if(file == null || file.length() <= 0 || StringUtils.isEmpty(fileFileName)){json.put("success", false);json.put("message", "文件为空,请重新上传");message = json.toString();return AJAX_RETURN_TYPE; }//获取文件名String contextPath = request.getSession().getServletContext().getRealPath("/");String tempFileName = WordDictionaryUtil.createTempFileName(fileFileName);try{FileUtils.copyFile(file, new File(contextPath+ WordDictionaryUtil.TEMP_AUDIOS_PATH+tempFileName));}catch( Exception e){logger.error( "上传音频错误:" + e.getMessage() );json.put("success", false);json.put("errorMsg", e.getMessage());message = json.toString();return AJAX_RETURN_TYPE;}json.put("success", true);json.put("audioName", tempFileName);message = json.toString();logger.debug("message = " + message);//防止IE下变成下载文件super.getServletResponse().setContentType("text/html");super.getServletResponse().getWriter().write(message);return null;}/*** * <p>Description:根据ID和[英式]or[美式]返回音频</p>* <p>Paramenter:</p>* <p>Return:</p>* <p>Exception:</p>* <p>Modified History: </p>*/public String getAudioByIdAndCountry(){WordDictionary wordDictionary = null;if( StringUtils.isEmpty(id) || StringUtils.isEmpty(countryType) ){throw new ActionException("args error.");}wordDictionary = wordDictionaryBiz.getWordDictionaryById(id);if(null == wordDictionary){audioStream = new ByteArrayInputStream(new byte[0]);}else{byte[] audioByteArray = null;if( COUNTRY_UK.equals(countryType) ){audioByteArray = wordDictionary.getUkAudioFile();if( audioByteArray == null ){audioStream = new ByteArrayInputStream(new byte[0]);}else{audioStream = new ByteArrayInputStream(audioByteArray);}}else if( COUNTRY_US.equals(countryType) ){audioByteArray = wordDictionary.getUsAudioFile();if( audioByteArray == null ){audioStream = new ByteArrayInputStream(new byte[0]);}else{audioStream = new ByteArrayInputStream(audioByteArray);}}else{throw new ActionException("countryType=" + countryType +", error.");}}return SUCCESS;}/*** * <p>Description:根据Server端的音频文件,返回音频</p>* <p>Paramenter:</p>* <p>Return:</p>* <p>Exception:</p>* <p>Modified History: </p>*/public String getAudioByFileName(){if( StringUtils.isEmpty(audioServerFileName) ){throw new ActionException("args error.");}String contextPath = request.getSession().getServletContext().getRealPath("/");try {byte[] audioByteArray = FileUtils.readFileToByteArray( new File(contextPath+ WordDictionaryUtil.TEMP_AUDIOS_PATH +audioServerFileName) );audioStream = new ByteArrayInputStream(audioByteArray);} catch (IOException e) {audioStream = new ByteArrayInputStream(new byte[0]);}return SUCCESS;}
}
==========================================
图片上传弹出框jsp
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<script language="javascript" type="text/javascript" src="<c:url value='/plugin/artDialog4.1.7/jquery.artDialog.js?skin=simple'/>"></script>
<script language="javascript" type="text/javascript" src="<c:url value='/plugin/artDialog4.1.7/plugins/iframeTools.js'/>"></script>
<script language= javascript type= text/javascript src="<c:url value='/default/scripts/jquery.form.js'/>" ></script><script type="text/javascript">$(document).ready(function(){var win = art.dialog.opener;//来源页面if (art.dialog.data('name')) {name=art.dialog.data('name');// 获取由主页面传递过来的数据};//上传图像$("#uploadbtn").click(function(){var filePath = $('#file').val();if(filePath==null || filePath== ''){alert('请选择要上传的文件');return;}else{var tempArray = filePath.split('\\');var index = tempArray.length-1;if(tempArray[index].length > 300){alert('文件名过长,请修改后重新上传');return;}}$('#uploadbtn').attr("disabled",true);$('#uploadbtn').attr("value","上传中...");$('#uploadForm').ajaxSubmit({ dataType: "json",success: function (data){var imageName = data.imageName;if(imageName !=""){win.changeImage(name,imageName);art.dialog.close();}else{alert("上传失败,请重新上传");}$('#uploadbtn').attr("disabled",false);$('#uploadbtn').attr("value","上传");}});});$("#cancel").click(function(){art.dialog.close();});});</script> <form id="uploadForm" action="<s:url value='/worddictionary/uploadImageByAjax.action'/>" method="post" enctype="multipart/form-data"><div style="text-align: center;margin-top: 20px;width: 100%;"><s:file name="file" size="20" accept="image/*" value="上传文件"></s:file> </div><div style="text-align: center;margin-top: 20px;width: 100%;" ><span>支持上传jpg、gif、png、bmp格式的图片,大小不超过4M </span></div>
</form>
<div style="width: 100%;text-align: right;margin-top: 20px;"><input id="uploadbtn" type="button" class="button" value="上传" ><input id="cancel" type="button" class="button" value="取消" style="margin-right:20px;">
</div>
音频上传弹出框jsp
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<script language="javascript" type="text/javascript" src="<c:url value='/plugin/artDialog4.1.7/jquery.artDialog.js?skin=simple'/>"></script>
<script language="javascript" type="text/javascript" src="<c:url value='/plugin/artDialog4.1.7/plugins/iframeTools.js'/>"></script>
<script language= javascript type= text/javascript src="<c:url value='/default/scripts/jquery.form.js'/>" ></script><script type="text/javascript">
//选择上传文件后回调
$.onFileSelected = function(file){var filePath = $(file).val();if(filePath==null || filePath== ''){alert('请选择要上传的音频文件');return;}/**var speaker = $(file).nextAll(".speaker");var info = $(file).next("span");info.text("上传中...");$(file).parents("form").ajaxSubmit({dataType: "json",success: function (data){if (data.success) {var audioId = data.audioId;var audioType = data.audioType;var audioName = data.audioName;info.text("");speaker.attr("audioId", audioId);speaker.attr("audioType", audioType);speaker.css("visibility", "visible");} else {info.text("上传失败,请重新上传");}}});**/
};$(document).ready(function(){var win = art.dialog.opener;//来源页面if (art.dialog.data('name')) {name=art.dialog.data('name');// 获取由主页面传递过来的数据};//上传图像$("#uploadbtn").click(function(){var filePath = $('#file').val();if(filePath==null || filePath== ''){alert('请选择要上传的文件');return;}else{var tempArray = filePath.split('\\');var index = tempArray.length-1;if(tempArray[index].length > 300){alert('文件名过长,请修改后重新上传');return;}}$('#uploadbtn').attr("disabled",true);$('#uploadbtn').attr("value","上传中...");$('#uploadForm').ajaxSubmit({ dataType: "json",success: function (data){var audioName = data.audioName;if(audioName !=""){win.changeAudio(name,audioName);art.dialog.close();}else{alert("上传失败,请重新上传");}$('#uploadbtn').attr("disabled",false);$('#uploadbtn').attr("value","上传");}});});$("#cancel").click(function(){art.dialog.close();});});</script> <form id="uploadForm" action="<s:url value='/worddictionary/uploadAudioByAjax.action'/>" method="post" enctype="multipart/form-data"><div style="text-align: center;margin-top: 20px;width: 100%;"><input id="file" name="file" accept="audio/mp3" type="file" οnchange="$.onFileSelected(this)"></div><div style="text-align: center;margin-top: 20px;width: 100%;" ><span>支持上传mp3格式的音频,大小不超过4M </span></div>
</form><div style="width: 100%;text-align: right;margin-top: 20px;"><input id="uploadbtn" type="button" class="button" value="上传" ><input id="cancel" type="button" class="button" value="取消" style="margin-right:20px;">
</div>