如何让二维码是什么指向要下载的文件,而不是软件介绍页面

西西软件下载最安全的下载网站、值得信赖的软件下载站!
→ 二维码下载软件方法介绍
v1.0 绿色版
类型:翻译工具大小:65KB语言:中文 评分:8.3
二维码现在在我们的生活中是越来越普及了,几乎随处可见,所谓的二维码是一种利用特定的几何图形记录数据符号等信息的方式,通常可以记录网址、文字、照片等信息,手机用户可以通过摄像头和解码软件将相关信息重新解码并查看内容。对大多手机控来说,二维码带来的最大便利应该是在下载软件的时候不需要再使用数据线了,那怎么利用二维码下载我们需要的软件呢?下面小编就将使用方法教给大家。使用方法:1、安装二维码扫描是一种基于手机摄像头的应用,除了硬件之外,网友们还需要在手机中安装一款二维码,比如快拍二维码识别软件之类的。2、二维码图形扫描在下载页面点击二维码标识,这时会弹出一个提示框,开启手机中的二维码软件,将摄像头对准图标进行扫描。3、二维码解析下载二维码扫描成功之后软件会自动解析其中的网址信息,点击打开连接,手机会自动下载软件到存储卡中,下载完成之后即可安装。成功识别二维码中的网址信息4、多方式分享多种方式分享在一些二维码软件中还提供了多种分享方式,可以通过短信、蓝牙、邮件甚至是微博的形式将下载链接分享给自己的好朋友。
05-0904-2103-2803-1112-1811-1609-1009-0302-0212-10
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载视频怎么放二维码到角落?求教.........._百度知道5566人阅读
asp.net(17)
先试用Response.WriteFile的方法:
FileInfo fi = new FileInfo(excelFile);//excelFile为文件在服务器上的地址
HttpResponse contextResponse = HttpContext.Current.Response;
contextResponse.Clear();
contextResponse.Buffer = true;
contextResponse.Charset = "GB2312"; //设置了类型为中文防止乱码的出现
contextResponse.AppendHeader("Content-Disposition", String.Format("filename={0}", excelName)); //定义输出文件和文件名
contextResponse.AppendHeader("Content-Length", fi.Length.ToString());
contextResponse.ContentEncoding = Encoding.Default;
contextResponse.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
contextResponse.WriteFile(fi.FullName);
contextResponse.Flush();
contextResponse.End();
其中第一行的excelFile为Excel文件在服务器上的地址,比如:&C:/Website/Excel/xx.xlsx&。
这种方法也是网上一般提供的方法,但在实际操作中,却出现了意向不到的问题:
在Chrome下
一切正常,Excel文件直接下载到Chrome的默认下载文件夹中。
在Firefox下
由于安装了FlashGot插件,会先选择应用的下载工具:
在这里显示是正常的,如果选择&保存文件&,Excel文件也会被保存到默认文件夹中,但如果试用第三方下载工具,比如迅雷,会出现如下窗口:
注意到网址一栏,会在页面实际地址后添加ViewState信息,而另存名称也不是Excel文件本身的名称,而是页面的名称。
点击确定后,被下载的文件又变成了实际文件(有时会先变成.zip文件,再变为实际文件)
会先弹出保存对话框,文件正常,同样因为装了迅雷的缘故,点保存时,弹出迅雷的下载对话框,和Firefox下不同,网址后面没有ViewState信息。
点确定,下载的则是页面文件:
如果在迅雷的下载对话框中点取消,则会使用IE的下载,这里的文件又是正确的了:
怀疑迅雷是根据下载对话框中的网址重新请求下载,与发起请求的页面已经无关,而IE又不会把ViewState信息传到迅雷中,导致下载的文件不是想要的Excel页面。
之后又尝试了分段下载的方式,其实也是无效的,因为迅雷根本不理会你提供给它的下载机制,而且这样在Firefox下调用迅雷时,由于分段下载的Viewstate并不包含Excel文件的完整信息,迅雷下载下的也是残缺的文件。
最后只能采用最老土的解决方法:Response.Redirect(),转向实际文件地址。
FileInfo fi = new FileInfo(excelFile);
HttpResponse contextResponse = HttpContext.Current.Response;
contextResponse.Redirect(string.Format("~/Template/{0}", excelName), false);
这样在三个浏览器下测试都正常了,因为请求的是实际文件的地址,在迅雷中显示的也是实际文件的地址。下载就不会出现问题。但这样相当于告知客户端用户文件的实际地址,隐私性不佳。但好在这里并不需要太好的隐私性,而且文件会在一定时间之后删除,所以倒并不是太大的问题了。
上面是第一次考虑的结果,似乎还是有些懒了&&
事后考虑,既然每次迅雷实际都是重新请求URL,那么我们就应该给迅雷传入一个能生成Excel文件的URL。
即,在点击&生成Excel&按钮的时候,转向另一个Export页面,在这个页面的Page_Load方法中完成生成Excel文件、下载Excel文件的步骤。
String fileName = Request.QueryString["FileName"];
String exportName = Request.QueryString["Export"];
if(fileName != null)
ExportManger.CreateExcel(fileName);//先在服务器端创建Excel文件。
Response.Redirect(String.Format("{0}?Export={1}",Request.Path.ToString(),fileName));//重定向到本页面,但Query参数变为Export。
else if(exportName != null)
ExportManger.ExportExcel(exportName);//下载Excel文件。
这里页面跳转了两次,第一次是生成Excel,第二次是下载Excel。
之所以跳转两次,是因为迅雷会捕获最后的URL,如果生成和下载放在一起进行,那么迅雷下载时会重复再生成一遍Excel文件。下载Excel文件的代码ExportManger.ExportExcel(exportName)就使用了本文开头介绍的Response.Write方法,也可以用分段下载的方法:
if(fi.Length & 0)
FileStream sr = new FileStream(fi.FullName,System.IO.FileMode.Open,System.IO.FileAccess.Read, System.IO.FileShare.Read);
int size = 1024;//设置每次读取长度。
for (int i = 0; i & fi.Length / size + 1; i++)
byte[] buffer = new byte[size];
int length = sr.Read(buffer, 0, size);
contextResponse.OutputStream.Write(buffer, 0, length);
sr.Close();
contextResponse.WriteFile(fi.FullName);
这里的结果是只生成了一次Excel并在服务器保留,以后每次下载的时候都使用带"Export"的参数下载相同的文件。那么如果需要文件只是一次性的,每次下载都需要重新生成,则只需要把Export页面的下载和生成放到一起。然后把开头的Response.Write方法最后变成:
contextResponse.Flush();
fi.Delete();
contextResponse.End();
即每次响应清空后把文件先删除,再结束响应。
这样就解决了利用下载工具出现的下载不能的问题,同时保护了服务器文件地址的隐私,并可以采用分段写入的方法写入大文件,而且可以按需要即时删除生成的文件而不占用服务器空间。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:61883次
排名:千里之外
原创:30篇
转载:28篇
评论:28条
(1)(1)(2)(2)(3)(2)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(2)(2)(2)(2)(3)(2)(2)(4)(1)(2)(2)(4)(1)(2)(2)(1)请问怎么把文件做成下载链接,我要做成二维码让人下载 请看了正文再回答 谢谢!_百度知道我们希望让用户通过扫二维码下载apk,但是微信屏蔽了这种方式,
这个问题我有考虑过,也可以提供一个带有下载链接的网页,但是这样需要两步操作,我更倾向于一步操作。同时我也考虑过这个问题可能是无解的,不过试试看,提出来看看有么有可能解决的方法。 同时,我在想,微信是否可以建立一种信任机制,将此作为一种合作机
我们希望让用户通过扫二维码下载apk,但是微信屏蔽了这种方式,
【我们希望让用户通过扫二维码下载apk,但是微信屏蔽了这种方式,】
请将本文分享给你的朋友:
我们希望让用户通过扫二维码下载apk,但是微信屏蔽了这种方式, 的相关文章
------分隔线----------------------------
北京联盟郑重声明:本文仅代表作者个人观点,与北京联盟无关。其原创性及文中陈述内容未经本站证实,北京联盟对本文及其中全部或者部分内容的真实性、完整性、及时性不作任何保证和承诺,请网友自行核实相关内容。

我要回帖

更多关于 二维码是什么 的文章

 

随机推荐