查看: 797|回复: 6
|
[解决]ASP.NET 与 C# DOWNLOAD 问题
[复制链接]
|
|
早上好,小弟有问题想要请教各位。请各位帮帮忙,在此谢过 (好像罗嗦了 )
在ASP.NET 与 C#里的DOWNLOAD,每当要DOWNLOAD FILE 时,除了DOWNLOAD DIALOG 会 POP UP出来,在DOWNLOAD DIALOG后面也会有个 BLANK WINDOW SCREEN,(如图)
当我在 DOWNLLOAD DIALOG 里按CANCEL 时,BLANK WINDOW SCREEN 是不会消失的。
请问我要怎样把BLANK WINDOW SCREEN 拿掉,或者不要让它POP UP 出来?谢谢。

这贴已经解决。谢谢各位
[ 本帖最后由 sawyih1 于 25-8-2006 01:30 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 25-8-2006 10:54 AM
|
显示全部楼层
应该不会有后面的 blank window, 要看你的 code 是怎么写了... |
|
|
|
|
|
|
|

楼主 |
发表于 25-8-2006 11:15 AM
|
显示全部楼层
我是用Javascript 在第一张form(Form1), 来开第二张form (Form2),然后Form2就会启动download file function。
Form1的Javascript如下:
function Link()
{
childWin =window.open('Form2.aspx','_blank','left=212,top=184,width=600,height=400,resizable=no');
return false;
}
请问要如何做才能call Form2而又不会有blank screen 呢? |
|
|
|
|
|
|
|
发表于 25-8-2006 11:24 AM
|
显示全部楼层
不知道你在 Form2.aspx 里的 code 是怎么样... 也许可以用 javascript 把它关掉. |
|
|
|
|
|
|
|

楼主 |
发表于 25-8-2006 11:46 AM
|
显示全部楼层
Form2 的 coding 如下;
private void Page_Load(object sender, System.EventArgs e)
{
string sURL = @"C:\Inetpub\wwwroot\tany.doc";
DownloadFile(sURL);
}
public static double getFileSize(string filePath)
{
double fileSize = 0;
if(File.Exists (filePath))
{
FileInfo fileInfos;
fileInfos = new FileInfo(filePath);
fileSize = fileInfos.Length;
}
return fileSize;
}
public static void DownloadFile(string filePath)
{
if (File.Exists(filePath))
{
FileInfo fileInfos;
long startPosition = 0;
long fileSize, endPosition; fileInfos = new FileInfo(filePath);
fileSize = fileInfos.Length;
endPosition = fileSize;
string range = HttpContext.Current.Request.Headers["Range"];
if (!(range == null || range == ""))
{
string[] startEnd = range.Substring(range.LastIndexOf("=") + 1).Split('-');
if (!(startEnd[0] == ""))
startPosition = long.Parse(startEnd[0]);
if ((startEnd.GetUpperBound(0) >= 1) && (!(startEnd[1] == "")))
endPosition = long.Parse(startEnd[1]);
else
endPosition = fileSize - startPosition;
if (endPosition > fileSize)
endPosition = fileSize - startPosition;
HttpContext.Current.Response.StatusCode = 206;
HttpContext.Current.Response.StatusDescription = "Partial Content";
HttpContext.Current.Response.AppendHeader("Content-Range", "bytes " + startPosition +"-"+ endPosition + "/" + fileSize);
}
HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" + fileInfos.Name);
HttpContext.Current.Response.WriteFile(filePath, startPosition, endPosition);
HttpContext.Current.Response.End();
}
else
hrow new Exception("Document not found. Please contact administrator.");
}
public bool FileExisted(string path)
{
return File.Exists(path);
}
[[i] 本帖最后由 sawyih1 于 25-8-2006 11:56 AM 编辑 [/i]] |
|
|
|
|
|
|
|

楼主 |
发表于 25-8-2006 11:51 AM
|
显示全部楼层
我有试过用javascript setTimeout来关掉它,
setTimeout('childWin.close()',10000)
不过又有问题出现。
当开得file 是 HTML时,它就会show在blank screen里面,
可是javascript 的 seTimeout还是在跑着,当timeout 了,就hit javascript error 了。
真的头大! |
|
|
|
|
|
|
|

楼主 |
发表于 25-8-2006 01:18 PM
|
显示全部楼层
问题已经解决了,
谢谢羊兄,
应该不会有后面的 blank window, 要看你的 code 是怎么写了...
一语惊醒梦中人。
我就知道那里出错了。
其实在Form1的javascript应该这样写就可以了:
function Link()
{
childWin =window.open('Form2.aspx','_self','left=212,top=184,width=600,height=400,resizable=no');
return false;
} |
|
|
|
|
|
|
| |
本周最热论坛帖子
|