Extjs 如何实现上传及下载功能。

Extjs 如何实现上传及下载功能。,第1张

其实,EXTJS4.0中有自带的上传控件 ,你引用一下就行了

关键在於,你上传的文件是保存在数据库中,还是保存在服务器的硬盤上

保存在数据库中要化成二进制流,但缺点是文件大的时候,数据库很麻烦,并且写进数据库要转换,读出来也要转化

如果保存在服务器上,只在数据库中保存路径,然後就可以根据路径来下载,

删除的时候,也同样根据路径要删除服务器上的文件和数据库中的文件信息

祝你好运,如何你不明白的话,我可以给你源码看一下,之前我做的上传,下载和删除功能。

可以这样,button里写 window.open('xxx.php?fileName=aaaa'),然后这个php文件里根据这个fileName找到对应文件,然后在这个页面以文件流的形式输出到浏览器端,这样会生成保存文件对话框

我是搞C#的,C#的文件流输出到浏览器代码如下

stream = File.Open(filePathName, FileMode.Open, FileAccess.Read)

                    byte[] data = new byte[stream.Length]

                    int result = stream.Read(data, 0, data.Length)

                    if (!File.Exists(filePathName))

                        return

                    HttpContext.Current.Response.Buffer = true

                    HttpContext.Current.Response.Charset = Encoding.UTF8.ToString()

                    HttpContext.Current.Response.AddHeader("Content-Disposition", "inlinefilename=" + Server.UrlEncode(fileName))

                    HttpContext.Current.Response.AddHeader("Content-Length", data.Length.ToString())

                    HttpContext.Current.Response.ContentType = "application/ms-excel"

                    stream.Close()

                    File.Delete(filePathName)

                    Response.BinaryWrite(data)

                    HttpContext.Current.ApplicationInstance.CompleteRequest()

没有,如果想要d出文件另存为的框,需要在server端进行如下设置header:

(假设下载的是一个word文档,别的格式可以百度搜索http content-type)

Content-type: application/msword

Content-Disposition: attachmentfilename=test.doc

在php里面就是

header('Content-type: application/msword')

header('Content-Disposition: attachmentfilename=test.doc ')

这样浏览器会自动识别并d出对话框


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11952160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存