window.location.href下载??
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window.location.href下载??相关的知识,希望对你有一定的参考价值。
window.location.href=服务器路径···123.jpg。怎么是直接打开了?是要下载这图片···
excel文件也是直接打开了,乱码···
应该是一个下载框·····另存为···
var w = window.open("","_self");
w.location.href=fileUrl;
网上说这样··但不行····??????
r
fe
fe
d
nrg
顶 参考技术B 你这种方式相当于链接的方式,就是让浏览器直接打开JPG或EXCEL。浏览器不把它当成附件,所以直接打开了,而不是下载。你需要修改response的头部,告诉游览器要下载一个赋件。简单的下载代码你可以百度。
下面再附上我用的下载代码.
public static bool ResponseFile(HttpRequest _Request, HttpResponse _Response, string _fileName, string _fullPath, long _speed)
try
FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
BinaryReader br = new BinaryReader(myFile);
try
_Response.AddHeader("Accept-Ranges", "bytes");
_Response.Buffer = false;
long fileLength = myFile.Length;
long startBytes = 0;
double pack = 10240; //10K bytes
//int sleep = 200; //每秒5次 即5*10K bytes每秒
int sleep = (int)Math.Floor(1000 * pack / _speed) + 1;
if (_Request.Headers["Range"] != null)
_Response.StatusCode = 206;
string[] range = _Request.Headers["Range"].Split(new char[] '=', '-' );
startBytes = Convert.ToInt64(range[1]);
_Response.AddHeader("Content-Length", (fileLength - startBytes).ToString());
if (startBytes != 0)
//Response.AddHeader("Content-Range", string.Format(" bytes 0-1/2", startBytes, fileLength-1, fileLength));
_Response.AddHeader("Connection", "Keep-Alive");
_Response.ContentType = "application/octet-stream";
_Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(_fileName, System.Text.Encoding.UTF8));
br.BaseStream.Seek(startBytes, SeekOrigin.Begin);
int maxCount = (int)Math.Floor((fileLength - startBytes) / pack) + 1;
for (int i = 0; i < maxCount; i++)
if (_Response.IsClientConnected)
_Response.BinaryWrite(br.ReadBytes(int.Parse(pack.ToString())));
Thread.Sleep(sleep);
else
i = maxCount;
catch
return false;
finally
br.Close();
myFile.Close();
catch
return false;
return true;
追问
这位哥哥、你的代码我有点不懂···
你说的修改response的头部,不是很明白????
能直接给出直接见效的办法或代码????
javascript window.location.href下载问题
现在一个js文件里是实现下载文件的功能!
window.location.href="url";
如果是.txt .pdf之类的文本文件,则会直接在浏览器里打开这个文件.
但是如果是.exe .rar之类的文件则是下载!我现在是想不管什么文件都是直接下载。而不是在浏览器里打开!请问该如何实现!谢谢了!!!
*.exe文件是不可能允许下载的,涉及到网站安全问题,如果你想任何文件,可以默认任何文件后面都加上".重命名" 例如:xxx.exe.重命名 这样的话都会直接下载的。
希望对你有用!by modao 参考技术A 没有这样的 如果是这样的话 就成病毒了 !追问
不是吧。。。那下载文件该怎么办???!!!
以上是关于window.location.href下载??的主要内容,如果未能解决你的问题,请参考以下文章
window.location.href 放置在单独的JS文件中使用时问题
javaScript使用post方式代替window.location.href