用户登录
用户注册

分享至

js弹出下载word文档

  • 作者: 油炸土包子
  • 来源: 51数据库
  • 2020-04-14

js弹出下载word文档

js 弹出窗下载文件 应该这么实现?

1-apache的POI,此方法对Excel的导出做的很好,目前对Word的导出方面的功能尚未完全。

2-纯JavaScript脚本实现。

主要通过客户端调用本机Office组件来实现。

3-在JSP页面引入头文件实现。

纯JavaScript脚本实现细节方面大体是创建一个word组件ActiveXObject('Word.Application'),用js通过表ID取得表内容然后保存到word,要注意的是js实现有很多不好的地方,例如Internet选项需要把ActiveX空间全部启用,安全级别设置为中。

这样的话岂不是每台机器都要配置一下。

其次每次生成word文档以后弹出对话框(无法保存此文件,因为它已在别处打开(C:\...\STARTUP\Powerword.dot)),出现此问题就需要把C:\Documents and Settings\当前用户名\Application Data\Microsoft\Word\STARTUP下的Powerword.dot文件删除,每次遇到此问题就需要删除文件来解决,十分不方便。

JSP页面引入来实现Word保存就方便多了,但是也有不足的地方,首先如果需要引入如果需要下载的话就引入其实如果大家用框架做就方便多了,比如Struts2。

在Action里直接写如下代码:if(out!=null){String fileName="";fileName+="评价报告.doc";try {HttpServletResponse response = ServletActionContext.getResponse();response.setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("GB2312"), "8859_1"));} catch (UnsupportedEncodingException e) {e.printStackTrace();}out是jsp页面表单元素,一个button,用于提交表单到相应Action进行Word下载。

Action设置jsp页面头文件。

这样每次点击button就可以把相应jsp页面的内容保存到Word中并且支持下载,Word中内容并且是可编辑状态。

不足的地方在于由于表内容是动态生成,有的需要先查看在下载Word,就需要另外建立一个新JSP页面进行Word下载,当然首先要在struts.xml里配置好页面转向。

新建立的页面传值同查看页面要保持一样。

js中用链接实现打开本地文件对话框

又是共享资料的问题呢。

首先迅雷真的是容易坏档,因为爱问从理论上来说不支持迅雷,但是IE也不好,还是那句话,IE是下载到临时文件夹然后转过来的,如果临时文件夹那里有问题一定就会有问题,另外硬盘转移的时候也有可能坏档,opea爱问支持的又不好,不过还是能用。

关于这个,我给您3个尝试的方法: 用快车1.96 把硬盘清理干净,每个硬盘容量都在1G以上 用opea,火狐等等(不然可以用opea试试登录手机共享资料?) 也可能是服务器坏档,建议您把地址发上来看看哦。

^_^

Excel文件不提示下载,而是在浏览器中打开?

方法一: 方法二:直接让客户端浏览器下载已知类型的文件 Web开发人员都有过这样的疑问,如何让一个文件,尤其是一个已知类型的文件,发送到客户端,直接提示让浏览者下载,而不是用与它相关联的程序打开。

以前我们最常用的办法就是把这样的文件加到链接上,这样可以让浏览者通过点击鼠标右键的目标另存为来下载所链接的文件。

但是,这样有两个不足的地方: 一是:如果浏览器能够识别已下载文件的扩展名,则浏览器就会激活该扩展名所关联的程序来打开所下载的文件。

比如:在Windows平台上,如果用户点击的链接链接的是一个“.doc”文件的话,那么,浏览器就会启动Microsoft Word应用程序来打开它。

二是:如果采用链接的办法的话,任何能看到该链接的人都可以下载该文件,你虽然也可以对所下载的文件进行权限设置,但那样做也不是很方便的。

有时候我们需要更为灵活和富有弹性的方式,下面的程序能够很方便地克服以上两方面的不足。

这种办法是可靠的,但你必须记住:没有授权的用户不能够通过在浏览器地址栏里输入文件的URL来取得该文件的下载权。

所以,要下载的文件应该放到虚拟目录之外的一个目录里,比如:如果你的虚拟目录是C:/Mengxianhui/Tomcat4/Website/MyApp的话,那么,存放在该目录和该目录下的任何子目录下所有文件对因特网上的任何用户都是可见的。

要直接下载一个文件,我们需要做两件事,第一件事是:设定响应的内容类为“application/octet-stream”,大小写无关。

第二件事是:设置HTTP的响应头名字为:Content-Disposition,设定值为:attachment; filename = theFileName。

这里的theFileName就是出现在文件下载对话框里的默认文件名,通常和所下载的文件名字相同,但也可以不同。

下面,我们就平常最常用的JSP和ASP页面来举一个实际应用的例子。

TestFileDownload.JSP页面的例子: 值得注意的是:在要下载的文件内容里,除了文件的内容之外,不应该再附加有其它任何的字符,包括空格和回车换行符。

我们有时在编写代码的时候,为了使代码清晰可读,往往会添加一些空格、制表符或者回车换行符,这样虽然看起来比较清晰,但有时可能会得不到正确的结果。

比如: 应该写成这样: TestFileDownload.ASP页面的例子: 在ASP里,没有提供从文件读取文件流信息的方法,因此,为了得到文件的流信息,我们必须借助其他的工具,最简单的就是编写一个VB或C的DLL组件,让组件返回文件的流信息。

下面是一个用VB编写的DLL的例子,工程名字为MengXHFileDownLoad,类模块的名字为BinReadFromFile,类方法readBinFromFile如下: Function readBinFromFile(ByVal bfilename As String) As Variant Dim fl As Long Dim FileNum As Long Dim binbyte() As Byte Dim binfilestr As String On Error GoTo errHandler FileNum = FreeFile Open bfilename For Binary As #FileNum fl = FileLen(bfilename) ReDim binbyte(fl) Get #FileNum, , binbyte Close #FileNum readBinFromFile = binbyte Exit Function errHandler: Exit Function End Function 把上面的代码编译成MengXHFileDownLoad.DLL,然后注册即可使用。

下面以直接下载一个When A Man Loves A Woman.mp3的MP3文件为例子,我们要编写的ASP脚本代码如下: <% Response.buffer = TRUE Response.ContentType = "APPLICATION/OCTET-STREAM " Response.AddHeader "Content-Disposition ", "attachment;filename=When A Man Loves A Woman.mp3 " Dim varStream, oMyObject Set oMyObject ...

转载请注明出处51数据库 » js弹出下载word文档

软件
前端设计
程序设计
Java相关