灵动标签如何判断 下载点数为0则不android弹出对话框扣点数对话框,为1点以上则android弹出对话框扣点数对话框

3417人阅读
&&&直接让客户端浏览器下载已知类型的文件 & & Web开发人员都有过这样的疑问,如何让一个文件,尤其是一个已知类型的文件,发送到客户端,直接提示让浏览者下载,而不是用与它相关联的程序打开。以前我们最常用的办法就是把这样的文件加到链接上,这样让浏览者通过点击鼠标右键的目标另存为来下载所链接的文件。但是,这样有两个不足的地方: & & 一是:如果浏览器能够识别已下载文件的扩展名,则浏览器就会激活该扩展名所关联的程序来打开所下载的文件。比如:在Windows上,如果用户点击的链接链接的是一个&.doc&文件的话,那么,浏览器就会启动Microsoft & Word应用程序来打开它。 & & 二是:如果采用链接的办法的话,任何能看到该链接的人都可以下载该文件,你虽然也可以对所下载的文件进行权限设置,但那样做也不是很方便的。有时候我们需要更为灵活和富有弹性的方式,下面的程序能够很方便地克服以上两方面的不足。 & & 这种办法是可靠的,但你必须记住:没有授权的用户不能够通过在浏览器地址栏里输入文件的URL来取得该文件的下载权。所以,要下载的文件应该放到虚拟目录之外的一个目录里,比如:如果你的虚拟目录是C:/Mengxianhui/Tomcat4/Website/MyApp的话,那么,存放在该目录和该目录下的任何子目录下所有文件对因特网上的任何用户都是可见的。要直接下载一个文件,我们需要做两件事,第一件事是:设定响应的内容类为&application/octet-stream&,大小写无关。第二件事是:设置HTTP的响应头名字为:Content-Disposition,设定值为: & filename & = & theFileName。这里的theFileName就是出现在文件下载对话框里的默认文件名,通常和所下载的文件名字相同,但也可以不同。下面,我们就平常最常用的JSP和ASP页面来举一个实际应用的例子。 & & & & & TestFileDownload.JSP页面的例子: & & & & & & &% & & // & 得到文件名字和路径 & & String & filename & = & "MengxianhuiDocTest.doc"; & & String & filepath & = & "D://"; & & & & // & 设置响应头和下载保存的文件名 & & response.setContentType("APPLICATION/OCTET-STREAM"); & & response.setHeader("Content-Disposition", & & " & filename=/"" & + & filename & + & "/""); & & & & // & 打开指定文件的流&&&& java.io.FileInputStream & fileInputStream & = & & new & java.io.FileInputStream(filepath & + & filename); & & & & // & 写出流信息 & & int & & & while & ((i=fileInputStream.read()) & != & -1) & { & & out.write(i); & & } & & fileInputStream.close(); & & out.close(); & & %& & & & & 值得注意的是:在你要下载的文件内容里,除了文件的内容之外,不应该再附加有其它任何的字符,包括空格和回车换行符。我们有时在编写代码的时候,为了使代码清晰可读,往往会添加一些空格、制表符或者回车换行符,这样虽然看起来比较清晰,但有时可能会得不到正确的结果。比如: & & &%@ & page & import="java.io.*" & & %& & & &jsp:useBean & id="MyBeanFromMengxianhui" & scope="page" & & class="com.Mengxianhui.DownloadBean" & /& & & 应该写成这样: & & &%@ & page & import="java.io.*" & & %&&jsp:useBean & id="MyBeanFromMengxianhui" & scope="page" & & class="com.Mengxianhui.DownloadBean" & /& & & & & 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脚本代码如下: & & & & &%@ & Language=VBScript & %& & & &% & & Response.buffer & = & TRUE & & Response.ContentType & = & "APPLICATION/OCTET-STREAM" & & Response.AddHeader & "Content-Disposition","filename=When & A & Man & Loves & A & Woman.mp3" & & & & Dim & varStream, & oMyObject & & & & Set & oMyObject & = & Server.CreateObject("MengXHFileDownLoad.BinReadFromFile") & & varStream & = & oMyObject.readBinFromFile("E:/MengXianhui/Mp3/When & A & Man & Loves & A & Woman.mp3") & & Response.BinaryWrite(varStream) & & Set & oMyObject & = & Nothing & & & & Response.End & & %& & & & & 当我们运行上面的TestFileDownload.ASP文件时,浏览器会弹出一个文件下载的对话框,提示我们下载,而不是用默认的MP3播放器打开。 & & 这种方法也可以把我们的ASP页面生成的HTML源代码保存成一个文件,下面的代码会提示你把ASP执行的结果保存成Test.htm文件。具体的方法是: & & &% & & Response.ContentType & = & "APPLICATION/OCTET-STREAM" & & Response.AddHeader & "Content-Disposition","filename=Test.htm" & & Response.write & "&div & style='background-color:color:#FFFFFF'&测试&/div&" & & Response.write & "&a & href=''&" & & Response.write & "&img & src='/back.jpg'&【孟宪会之精彩世界】&/a&" & & Response.End & & %& & & & & 当我们的文件数目很少时,也可以直接在器端进行设置,让这些文件直接下载。具体做法是:在Internet服务管理器里,选&属性&项,然后选&HTTP & Headers&标签页进行设置即可!! &
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:358741次
积分:4423
积分:4423
排名:第3403名
原创:40篇
转载:228篇
评论:118条
(1)(1)(2)(1)(2)(2)(1)(2)(2)(1)(1)(1)(1)(1)(2)(1)(3)(1)(1)(2)(3)(7)(21)(11)(6)(1)(4)(5)(16)(1)(1)(1)(6)(12)(6)(7)(1)(3)(6)(5)(1)(4)(5)(2)(2)(3)(4)(2)(11)(2)(14)(2)(19)(4)(1)(3)(5)(5)(2)(10)(6)(4)(7)android 开发中点击弹出对话框中的按钮进行页面跳转如何实现_百度知道
android 开发中点击弹出对话框中的按钮进行页面跳转如何实现
你可以获取对话框的点击事件,比如点击了确定然后你就跳转 AlertDialog.Builder builder = new Builder(CommentActivity.this);
builder.setMessage(&确定要跳转吗?&);
builder.setTitle(&提示&);
builder.setPositiveButton(&确认&,
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
arg0.dismiss();
这里跳转到你想要去的页面
builder.setNegativeButton(&取消&,
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
builder.create().show(); arg0就是该listener的接口啊,通过这个参数就可以关闭对话框。跳到想去的页面就startIntent就好了,你把那一行中文换成 Intent it = new Intent(this,UserActivity.class);
startActivity(it);
当然要跳去哪个页面就你自己决定AlertDialog.Builder builder = new Builder(CommentActivity.this);
builder.setMessage(&确定要跳转吗?&);
builder.setTitle(&提示&);
builder.setPositiveButton(&确认&,
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
arg0.dismiss();
Intent it = new Intent(this,UserActivity.class);
startActivity(it);
builder.setNegativeButton(&取消&,
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
builder.create().show();
其他类似问题
为您推荐:
在按钮的点击事件中,用intent跳到下一个activity
弹出的带文本输入框的对话框中没有点击事件啊
你不是说【点击弹出对话框中的按钮进行页面跳转】?到底是什么样的布局呀
你弹出的应该是一个dialog吧?你在上面加一个按钮,给按钮监听事件,用Intent跳转到下一个界面就好了~
必须要再写一个xml页面放到dialog里边吗,不能直接给dialog一个文本输入框吗?
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁点击网站某个图片,弹出一个QQ对话框。这是如何做到的???
[问题点数:100分,结帖人zhouzangood]
点击网站某个图片,弹出一个QQ对话框。这是如何做到的???
[问题点数:100分,结帖人zhouzangood]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
本帖子已过去太久远了,不再提供回复功能。您的举报已经提交成功,我们将尽快处理,谢谢!
那个软件有问题
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'如何解决打开Excel文件时弹出“发现不可读取的内容,是否恢复此工作簿的内容?”对话框的问题?_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
如何解决打开Excel文件时弹出“发现不可读取的内容,是否恢复此工作簿的内容?”对话框的问题?
上传于||文档简介
&&如​何​解​决​打​开​E​x​c​e​l​文​件​时​弹​出​“​发​现​不​可​读​取​的​内​容​,​是​否​恢​复​此​工​作​簿​的​内​容​?​”​对​话​框​的​问​题​?
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢

我要回帖

更多关于 android弹出对话框 的文章

 

随机推荐