struts文件上传下载.docx

上传人:b****4 文档编号:24369447 上传时间:2023-05-26 格式:DOCX 页数:30 大小:189.39KB
下载 相关 举报
struts文件上传下载.docx_第1页
第1页 / 共30页
struts文件上传下载.docx_第2页
第2页 / 共30页
struts文件上传下载.docx_第3页
第3页 / 共30页
struts文件上传下载.docx_第4页
第4页 / 共30页
struts文件上传下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

struts文件上传下载.docx

《struts文件上传下载.docx》由会员分享,可在线阅读,更多相关《struts文件上传下载.docx(30页珍藏版)》请在冰豆网上搜索。

struts文件上传下载.docx

struts文件上传下载

Struts2文件下载功能开发

技术要点

本节代码详细说明文件下载功能的开发流程,介绍知识点如下:

 上传成功页面重修改后支持文件下载代码内容。

 DownloadAction文件下载功能开发。

 struts.xml中DownloadAction配置,以及支持文件名为中文字符的文件下载。

 下载文件流程展示。

演示代码

上传成功页面,这里笔者让其在每个上传文件后提供“下载”链接。

Java代码

1.

------------------------文件名:

result.jsp------------------->  

2.<%@taglib prefix="s" uri="/struts-tags"%>  

3.      

4.        上传文件:

  

5.        

  

6.        

-- 循环显示上传成功文件名 -->  

7.        

iterator value="fileFileName" status="fn">  

8.        

  

9.        

  

13.        

  

21.        

  

22.        

iterator>       

23.        

  

10.        

-- 上传成功文件名 -->  

11.        

property />          

12.        

  

14.        

-- 下载文件链接内容为定义的下载Action -->  

15.        

-- 下载文件名作为链接参数fileName值,用OGNL表达式表达 -->    

16.        

url value='download.action'>                 

17.                    

param name='fileName'  

18. value='fileFileName[#fn.getIndex()]'/>    

19.                 

url>">下载  

20.        

        

24.      

------------------------文件名:

result.jsp------------------->

<%@taglibprefix="s"uri="/struts-tags"%>

上传文件:

--循环显示上传成功文件名-->

iteratorvalue="fileFileName"status="fn">

iterator>

--上传成功文件名-->

property/>

--下载文件链接内容为定义的下载Action-->

--下载文件名作为链接参数fileName值,用OGNL表达式表达-->

urlvalue='download.action'>

paramname='fileName'

value='fileFileName[#fn.getIndex()]'/>

url>">下载

DownLoadAction类代码

Java代码

1.

------------文件名:

DownLoadAction.java ------------------>  

2.import java.io.InputStream;  

3.import java.io.UnsupportedEncodingException;  

4.  

5.import org.apache.struts2.ServletActionContext;  

6.import com.opensymphony.xwork2.ActionSupport;  

7.  

8.public class DownLoadAction extends ActionSupport {  

9.    //下载文件原始存放路径  

10.    private final static String DOWNLOADFILEPATH="/upload/";  

11.    //文件名参数变量  

12.    private String fileName;  

13.  

14.    public String getFileName() {  

15.        return fileName;  

16.    }  

17.  

18.    public void setFileName(String fileName) {  

19.        this.fileName = fileName;  

20.    }  

21.  

22.    //从下载文件原始存放路径读取得到文件输出流  

23.    public InputStream getDownloadFile() {  

24.        return   

25.ServletActionContext.getServletContext().getResourceAsStream(DOWNLOADFILEPATH+fileName);  

26.    }  

27.    //如果下载文件名为中文,进行字符编码转换  

28.    public String getDownloadChineseFileName() {  

29.        String downloadChineseFileName = fileName;  

30.  

31.        try {  

32.            downloadChineseFileName = new String(downloadChineseFileName.getBytes(), "ISO8859-1");  

33.        } catch (UnsupportedEncodingException e) {  

34.            e.printStackTrace();  

35.        }  

36.  

37.        return downloadChineseFileName;  

38.    }  

39.  

40.    public String execute() {  

41.        return SUCCESS;  

42.    }  

43.}  

------------文件名:

DownLoadAction.java------------------>

importjava.io.InputStream;

importjava.io.UnsupportedEncodingException;

importorg.apache.struts2.ServletActionContext;

importcom.opensymphony.xwork2.ActionSupport;

publicclassDownLoadActionextendsActionSupport{

//下载文件原始存放路径

privatefinalstaticStringDOWNLOADFILEPATH="/upload/";

//文件名参数变量

privateStringfileName;

publicStringgetFileName(){

returnfileName;

}

publicvoidsetFileName(StringfileName){

this.fileName=fileName;

}

//从下载文件原始存放路径读取得到文件输出流

publicInputStreamgetDownloadFile(){

return

ServletActionContext.getServletContext().getResourceAsStream(DOWNLOADFILEPATH+fileName);

}

//如果下载文件名为中文,进行字符编码转换

publicStringgetDownloadChineseFileName(){

StringdownloadChineseFileName=fileName;

try{

downloadChineseFileName=newString(downloadChineseFileName.getBytes(),"ISO8859-1");

}catch(UnsupportedEncodingExceptione){

e.printStackTrace();

}

returndownloadChineseFileName;

}

publicStringexecute(){

returnSUCCESS;

}

}

struts.xml配置文件中有关文件下载的配置:

Java代码

1.

------------------文件名:

struts.xml----------------->  

2.  

3.    

-- 下载文件的Action定义 -->  

4.          

5.            

-- 设置文件名参数,由页面上传入 -->  

6.              

7.              

8.                

-- 下载文件类型定义 -->  

9.                text/plain  

10.                

-- 下载文件处理方法 -->  

11.                  

12.                    attachment;filename="${downloadChineseFileName}"  

13.                  

14.                

-- 下载文件输出流定义 -->  

15.                downloadFile  

16.              

17.          

18.   

------------------文件名:

struts.xml----------------->

--下载文件的Action定义-->

--设置文件名参数,由页面上传入-->

--下载文件类型定义-->

text/plain

--下载文件处理方法-->

attachment;filename="${downloadChineseFileName}"

--下载文件输出流定义-->

downloadFile

(1):

文件开始下载页面如图4.12所示。

图4.12 文件下载

(2):

单击“下载”链接,比如点“下载文件1.txt”文件右边“下载”链接,出现对话框如图4.13所示。

图4.13 下载文件处理方式

(3):

单击“保存”按钮后选择下载文件存放路径,如图4.14所示。

图4.14 下载文件选择存放路径

代码解释

(1)在result.jsp中通过iterator标签和url标签定义了“fileFileName”的循环显示以及链接。

其中有关“status”和OGNL表达式笔者会在之后章节里具体介绍,这里只是让读者知道是如何使用标签显示图4.12显示的内容。

特别指出标签为downloadAction定义了一个参数,该参数名为“fileName”,因为在4.4.1小节中笔者定义的“fileFileName”是个List类型的数据集合,因此利用OGNL表达式将文件名作为“fileName”参数值传入downloadAction中。

(2)DownLoadAction文件中先定义了常量DOWNLOADFILEPATH,它是下载文件在服务器存放的路径名,也就是4.4.1小节中上传文件在服务器存放的路径名。

定义好DOWNLOADFILEPATH后,在定义DownLoadAction的属性变量。

因为在result.jsp中定义了参数“fileName”,则它作为DownLoadAction的属性变量,需要定义相应的getter、setter方法。

然后定义了getDownloadFile方法,它返回的是一个文件流,表明将被下载文件转换为输出流,方便下载。

利用Struts2自带的“ServletActionContext”类的API把下载文件存放路径作为方法参数,读取下载文件,将其转换为文件流。

还有一个getDownloadChineseFileName方法,该方法主要作用是将文件名为中文字符的文件进行文件名的字符编码集合转换。

因为在Web系统中由JSP等视图页面传入的变量值,特别是中文字符的变量。

缺省的字符编码集合都是“ISO8859-1”,因此利用Java的字符串类的API,将字符编码转成开发需要的字符编码集。

防止中文字符乱码问题发生。

(3)struts.xml中定义了名为“download”的Action。

其中它自己的参数“fileName”因为在这里它的值会从JSP页面上传入,所以这里只是定义,没有具体给它赋任何值

标签中定义了type属性,值为“stream”。

如果是下载文件功能开发,DownLoadAction一定要设置type属性,而且值为“stream”。

这是因为在Struts2自带的xml配置文件为struts-default.xml中有关于“stream”的result返回类型的定义,代码如下:

Java代码

1.

-------------------文件名:

struts-default.xml-------------->  

2.  

-------------------文件名:

struts-default.xml-------------->

这里Struts2定义了result返回类型为“stream”,这个result类型主要是处理文件的输入和输出流时候需要使用的。

因为下载文件就是把文件转换成输入输出流,将其从一个文件路径放到另外一个文件路径中去。

所以肯定要设置这个result类型的。

“contentType”、“contentDisposition”、“inputName”都是这个result的属性。

“contentType”就是文件类型。

这里因为下载的文件是文本文件,因此设定的值为文本文件类型,具体各个文件类型如何定义,4.4.1小节已经介绍过,这里不再做说明。

“contentDisposition”是指定下载文件处理方式,如图4.13就是处理方式的效果。

特别指出如果“contentDisposition”定义的值把前面的“attachment”去掉,则下载方式不是以附件方式下载,如果单击“下载”链接,则会把下载文件的内容显示在浏览器中。

读者可以去试验一下。

这里有个“${downloadChineseFileName}”,这就是在DownLoadAction中定义getDownloadChineseFileName方法的目的,${downloadChineseFileName}是OGNL的表达式,它显示了“downloadChineseFileName”变量的具体值,因为在DownLoadAction中定义getDownloadChineseFileName方法,则把已经转换成符合需要字符编码集的下载文件名作为下载文件方式对话框中显示的名称,不会造成任何乱码问题。

“inputName”是最关键的一个属性,也是一定要定义的属性,“inputName”参数中定义的值“downloadFile”就是DownLoadAction中getDownloadFile方法返回的文件流名字。

在Struts2中Acion用前缀名为get的方法得到各种属性的值,这些属性有些是在Action中定义,有些就像本示例在配置文件中利用OGNL表达式或直接定义。

(4)开始进行文件下载功能展示,按照如上记述的步骤执行即可。

笔者将两个文本文件上传上去,然后在上传成功页面对具体的文件进行下载。

在图4.13中单击“保存”按钮就显示图4.14,选择在本机上存放下载文件的路径即可完成下载文件功能。

10-Struts2文件上传功能开发|12-Struts2标签使用原理解疑

评论共3条发表评论

3楼release2009-10-2815:

01引用

上个项目遇到过CentOS下的乱码问题,需要在下载方法中显示定义

ServletActionContext.getResponse().setHeader("Content-Disposition","attachment;filename="+newString(file_name.getBytes("gb2312"),"iso-8859-1);

楼主归纳的很详尽了

2楼黑暗浪子2009-10-1909:

10引用

release写道

楼主你确定用LINUX做服务器你的下载不会产生中文乱码?

不好意思,我没有用linux试过。

如果有缺陷,你可以帮我补充,谢谢~

1楼release2009-10-1716:

49引用

楼主你确定用LINUX做服务器你的下载不会产生中文乱码?

发表评论

Struts2文件上传功能开发  

技术要点

本节代码详细说明文件上传功能的开发流程,介绍知识点如下:

  文件上传页面和显示上传成功页面代码内容。

   UploadAction类中实现上传功能方法和上传文件属性介绍。

   struts.xml中UploadAction配置,以及字符编码、文件临时存放路径配置。

   上传后所处路径和最终上传成功后效果展示。

演示代码

上传文件页面,这里笔者定义的是多个文件上传。

Java代码

1.

---------------------文件名:

upload.jsp----------------->  

2.<%@taglib prefix="s" uri="/struts-tags"%>  

3.  

4.      

5.          

6.        上传文件  

7.      

8.      

9.    

-- 上传文件表单定义 -->  

10.    

form action="upload" method="post" enctype="multipart/form-data">  

11.          

12.    

-- 上传文件标签定义 -->  

13.    上传文件:

file name="file">

file>  

14.      

15.      

16.    再次上传文件:

file name="file">

file>  

17.      

18.      

19.    

submit name="submit" value="提交">

submit>  

20.      

21.    

form>  

22.      

23.  

---------------------文件名:

upload.jsp----------------->

<%@taglibprefix="s"uri="/struts-tags"%>

上传文件</ti</p> </div> <div class="readmore" onclick="showmore()" style="background-color:transparent; height:auto; margin:0px 0px; padding:20px 0px 0px 0px;"><span class="btn-readmore" style="background-color:transparent;"><em style=" font-style:normal">展开</em>阅读全文<i></i></span></div> <script> function showmore() { $(".readmore").hide(); $(".detail-article").css({ "height":"auto", "overflow": "hidden" }); } $(document).ready(function() { var dh = $(".detail-article").height(); if(dh >100) { $(".detail-article").css({ "height":"100px", "overflow": "hidden" }); } else { $(".readmore").hide(); } }); </script> </div> <script> var defaultShowPage = parseInt("5"); var id = "24369447"; var total_page = "30"; var mfull = false; var mshow = false; function DownLoad() { window.location.href='https://m.bdocx.com/down/24369447.html'; } function relate() { var reltop = $('#relate').offset().top-50; $("html,body").animate({ scrollTop: reltop }, 500); } </script> <script> var pre = "https://file1.bdocx.com/fileroot1/2023-5/26/408384bb-e4a0-4b07-98b5-2bf735700b6f/408384bb-e4a0-4b07-98b5-2bf735700b6f"; var freepage = parseInt('20'); var total_c = parseInt('30'); var start = defaultShowPage; var adcount = 0; var adindex = 0; var adType_list = ";0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;"; var end = start; function ShowSvg() { end = start + defaultShowPage; if (end > freepage) end = freepage; for (var i = start; i < end; i++) { var imgurl = pre + (i + 1) + '.gif'; var html = "<img src='" + imgurl + "' onerror=\"this.src='/images/s.gif'\" alt=\"struts文件上传下载.docx_第" + (i + 1) + "页\" width='100%'/>"; $("#page").append("<div class='page'>" + html + "</div>"); $("#page").append("<div class='pageSize'>第" + (i + 1) + "页 / 共" + total_c + "页</div>"); if(adcount > 0 && adType_list.indexOf(";"+(i+1)+";")>-1) { if(adindex > (adcount-1)) adindex = 0; $("#page").append("<div class='pagead' id='addiv"+(i + 1)+"'></div>"); document.getElementById("addiv"+(i + 1)+"").innerHTML =document.getElementById("adpre" + adindex).outerHTML; adindex += 1; } } start = end; if (start > (freepage - 1)) { if (start < total_c) { $("#pageMore").removeClass("btnmore"); $("#pageMore").html("亲,该文档总共" + total_c + "页,到这儿已超出免费预览范围,如果喜欢就下载吧!"); } else { $("#pageMore").removeClass("btnmore"); $("#pageMore").html("亲,该文档总共" + total_c + "页全部预览完了,如果喜欢就下载吧!"); } } } //$(document).ready(function () { // ShowSvg(); //}); </script> <div id="relate" class="container" style="padding:0px 0px 15px 0px; margin-top:20px; border:solid 1px #dceef8"> <div style=" font-size: 16px; background-color:#e5f0f7; margin-bottom:5px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px;">相关资源</div> <div id="relatelist" style="padding-left:5px;"> <ul> <li><em class="pptx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30873091.html" title="高考英语一轮复习-语法突破--特殊句式(共40张PPT).pptx">高考英语一轮复习-语法突破--特殊句式(共40张PPT).pptx</a> </li><li><em class="ppt"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872962.html" title="安装工程工程量清单计价.ppt">安装工程工程量清单计价.ppt</a> </li><li><em class="docx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872950.html" title="课程体验量表(CEQ).docx">课程体验量表(CEQ).docx</a> </li><li><em class="ppt"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872813.html" title="极化弛豫和介电损耗.ppt">极化弛豫和介电损耗.ppt</a> </li><li><em class="doc"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872765.html" title="征集和招录人员政治考核表.doc">征集和招录人员政治考核表.doc</a> </li><li><em class="ppt"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872745.html" title="地质填图方法详解.ppt">地质填图方法详解.ppt</a> </li><li><em class="docx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872643.html" title="艾梅乙检测服务流程图.docx">艾梅乙检测服务流程图.docx</a> </li><li><em class="docx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872525.html" title="2024 年党纪学习教育党课讲稿(共八篇).docx">2024 年党纪学习教育党课讲稿(共八篇).docx</a> </li><li><em class="pptx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872168.html" title="最新教科版三年级科学上册第一单元《水》复习精品教学课件.pptx">最新教科版三年级科学上册第一单元《水》复习精品教学课件.pptx</a> </li><li><em class="ppt"/></em><a target="_parent" href="https://m.bdocx.com/doc/30871765.html" title="小学六年级语文毕业总复习.ppt">小学六年级语文毕业总复习.ppt</a> </li> </ul> </div> </div> <div class="container" style="padding:0px 0px 15px 0px; margin-top:20px; border:solid 1px #dceef8"> <div style=" font-size: 16px; background-color:#e5f0f7; margin-bottom:5px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px;">猜你喜欢</div> <div id="relatelist" style="padding-left:5px;"> <ul> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/4479516.html" target="_parent" title="企业网络构建综合实训报告.docx">企业网络构建综合实训报告.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/4479517.html" target="_parent" title="气力输灰技术方案.docx">气力输灰技术方案.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/4479518.html" target="_parent" title="架空乘人装置日常维护检修安全技术措施.docx">架空乘人装置日常维护检修安全技术措施.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/4479519.html" target="_parent" title="计算机网络实验报告书.docx">计算机网络实验报告书.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/4479520.html" target="_parent" title="个人职业生涯规划书建筑装饰.docx">个人职业生涯规划书建筑装饰.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/4479521.html" target="_parent" title="施工现场重大危险源识别监控和隐患排查治理制度.docx">施工现场重大危险源识别监控和隐患排查治理制度.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/4479522.html" target="_parent" title="现代西班牙语第一册课文翻译及课后答案.docx">现代西班牙语第一册课文翻译及课后答案.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/4479523.html" target="_parent" title="投资学第五章习题集.docx">投资学第五章习题集.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/4479524.html" target="_parent" title="外贸业务员年度工作总结5篇.docx">外贸业务员年度工作总结5篇.docx</a></li> </ul> </div> </div> <div style=" font-size: 16px; background-color:#e5f0f7; margin-top:20px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px; margin-bottom:10px;"> 相关搜索</div> <div class="widget-box pt0" style="border: none; padding:0px 5px;"> <ul class="taglist--inline multi"> <li class="tagPopup"><a target="_parent" class="tag tagsearch" rel="nofollow" href="https://m.bdocx.com/search.html?q=struts">struts</a></li> <li class="tagPopup"><a target="_parent" class="tag tagsearch" rel="nofollow" href="https://m.bdocx.com/search.html?q=%e6%96%87%e4%bb%b6">文件</a></li> <li class="tagPopup"><a target="_parent" class="tag tagsearch" rel="nofollow" href="https://m.bdocx.com/search.html?q=%e4%b8%8a%e4%bc%a0%e4%b8%8b%e8%bd%bd">上传下载</a></li> </ul> </div> <br /> <div > 当前位置:<a target="_parent" href="https://m.bdocx.com/">首页</a> > <a href="https://m.bdocx.com/booklist-00009.html">求职职场</a><span> > </span><a href="https://m.bdocx.com/booklist-0000900002.html">面试</a> </div> <br /> <div class="cssnone"> <iframe title="来源" src="https://m.bdocx.com/BookRead.aspx?id=sfqH3NJK1r7WhmwzDtcZHg%3d%3d&parto=7RhISEwJArCac%2b0hHl5EfFDNNDO7IDhdDSkBDu6oVRble96meWHMm2g8k9u7lURxnvG1D3282c4%2fLBNzxIujzfl%2bzbp1TJotr2kxsse2mJDbKCYQCLX15yVK0hY7p2GJFOfhY0AQz2XAdtg%2fTNb2iWTBQ3eo921W8SC379HpCdv%2bvk5Lsoozl8zCLe72ZcyuUW7M1Sw%2bg79UP3S952SgS8y0iPl%2f5PeV" frameborder="0" style="width: 0px; height: 0px"> </iframe> </div> <span id="LabelScript"></span> <script src="https://mstatic.bdocx.com/JS/bootstrap-collapse.js"></script> </form> <div class="siteInner_bg" style="margin-top: 40px; border: solid 0px red; margin-left: 0px; margin-right: 0px;"> <div class="siteInner"> <p style="text-align: center;">copyright@ 2008-2022 冰豆网网站版权所有</p><p style="text-align: center;">经营许可证编号:<a href="http://beian.miit.gov.cn/" target="_blank">鄂ICP备2022015515号-1</a></p><script>var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?2e77bd3f6fe91b0e21d3f22267249ee3"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();</script><script>(function(){ var el = document.createElement("script"); el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?81476e42bf626128cf29544ee216a8ed7deb9487dce7ed62313212129c4244a219d1c501ebd3301f5e2290626f5b53d078c8250527fa0dfd9783a026ff3cf719"; el.id = "ttzz"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(el, s); })(window)</script> </div> </div> <div class="trnav clearfix" id="navcontent" style="display: none; background-color:#3a71b1; "> <div class="trlogoside" id="navlogo" style="display: none;"> <a href="https://m.bdocx.com/" title="冰豆网"><img src="https://www.bdocx.com/images/logo_bd.png" alt="冰豆网"></a> <div class="trnavclose" id="navclose"> <span></span> </div> </div> <div class="navcontainer"> <div class="row"> <ul class="nav navbar-nav trnavul headercontent" id="navigation" style="margin:20px 0 0px;"> <li><a target="_parent"href="https://m.bdocx.com/login.aspx">登录</a></li> <li><a target="_parent"href="https://m.bdocx.com/">首页 </a></li> <li><a target="_parent"href="https://m.bdocx.com/booklist-0.html">资源分类 </a></li> <li><a target="_parent"href="https://m.bdocx.com/UserManage/Recharge.aspx?f=0"><img src="https://m.bdocx.com/images/s.gif" alt="new" class="hottip1">升级会员 <img src="https://www.bdocx.com/FileUpload/Images/48520fea-bc98-41ae-b183-84689c7075c9.gif" alt="new" class="hottip"></a></li> <li><a target="_parent"href="https://m.bdocx.com/newslist.html">通知公告 </a></li> <li><a target="_parent"href="https://m.bdocx.com/h-0.html">帮助中心 </a></li> </ul> </div> </div> </div> <script type="text/javascript"> function stopPropagation(e) { var ev = e || window.event; if (ev.stopPropagation) { ev.stopPropagation(); } else if (window.event) { window.event.cancelBubble = true;//兼容IE } } $("#navmore").click(function (e) { $("#navcontent").show(); $("#navlogo").show(); stopPropagation(e); var navcontentwidth = $("#navcontent").width(); $('#navcontent').css({ 'right': '-' + navcontentwidth + 'px' }); $("#navcontent").show().animate({ "right": 0 }, 300); }); $(document).bind('click', function () { var navcontentwidth = $("#navcontent").width(); $("#navcontent").animate({ 'right': '-' + navcontentwidth + 'px' }, 300, function () { $("#navcontent").hide(); }); $("#navlogo").fadeOut(300); }); $("#navcontent").click(function (e) { stopPropagation(e); }); $("#navclose").click(function (e) { var navcontentwidth = $("#navcontent").width(); $("#navcontent").animate({ 'right': '-' + navcontentwidth + 'px' }, 300, function () { $("#navcontent").hide(); }); $("#navlogo").fadeOut(300); }); </script> <script> function BaseShare(title, desc, imgUrl) { var link = "https://m.bdocx.com/doc/24369447.html"; if (wx) { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx4f717640abfd1120', // 必填,公众号的唯一标识 timestamp: '1730955107', // 必填,生成签名的时间戳 nonceStr: '26657D5FF9020D2ABEFE558796B99584', // 必填,生成签名的随机串 signature: 'c9454bec96160babd4aaa7fec1c45c262059cf64',// 必填,签名,见附录1 jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData', 'hideMenuItems'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 //openTagList: ["wx-open-launch-weapp"]//H5打开小程序 }); wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.hideMenuItems({// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3 menuList: ['menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone', 'menuItem:share:email', 'menuItem:originPage', 'menuItem:readMode', 'menuItem:delete', 'menuItem:editTag', 'menuItem:share:facebook', 'menuItem:share:weiboApp', 'menuItem:share:brand'] }); var shareData = { title: title, // 分享标题 desc: desc,//这里请特别注意是要去除html link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: imgUrl, // 分享图标 }; wx.updateAppMessageShareData(shareData);//1.4 分享到朋友 wx.updateTimelineShareData(shareData);//1.4分享到朋友圈 }); } } function BaseShare(title, desc, imgUrl, link) { if (link=="") link = "https://m.bdocx.com/doc/24369447.html"; if (wx) { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx4f717640abfd1120', // 必填,公众号的唯一标识 timestamp: '1730955107', // 必填,生成签名的时间戳 nonceStr: '26657D5FF9020D2ABEFE558796B99584', // 必填,生成签名的随机串 signature: 'c9454bec96160babd4aaa7fec1c45c262059cf64',// 必填,签名,见附录1 jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData', 'hideMenuItems'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 //openTagList: ["wx-open-launch-weapp"]//H5打开小程序 }); wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.hideMenuItems({// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3 menuList: ['menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone', 'menuItem:share:email', 'menuItem:originPage', 'menuItem:readMode', 'menuItem:delete', 'menuItem:editTag', 'menuItem:share:facebook', 'menuItem:share:weiboApp', 'menuItem:share:brand'] }); var shareData = { title: title, // 分享标题 desc: desc,//这里请特别注意是要去除html link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: imgUrl, // 分享图标 }; wx.updateAppMessageShareData(shareData);//1.4 分享到朋友 wx.updateTimelineShareData(shareData);//1.4分享到朋友圈 }); } } </script> <script> $(document).ready(function () { var arr = $(".headercontent"); for (var i = 0; i < arr.length; i++) { (function (index) { var url = "https://m.bdocx.com/header.aspx"; $.get(url + "?t=" + (new Date()).valueOf(), function (d) { try { arr.eq(index).empty().html(d); } catch (e) { } try { arr.html(d); } catch (e) { } }); })(i); } }); </script> <script src="https://mstatic.bdocx.com/js/jquery.lazyload.js"></script> <script charset="utf-8"> $("img.lazys").lazyload({ threshold: 200, effect: "fadeIn" }); </script> </body> </html>