标题:急呀!!怎么没有人会呀?????
取消只看楼主
premking
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-30
 问题点数:0 回复次数:7 
急呀!!怎么没有人会呀?????
问题是这样的,我要在客户端调用WEB页面实现文件的下载,可是点击客户端下载按钮后,弹出的保存文件对话框经常跟我捉迷藏,时有时无。各位大虾帮忙看看是怎么回事。谢谢了!在线等
web端代码如下:
void Page_Load(Object sender, EventArgs e)
{
string Hid;
string company;
string year;
string filepath;
string filename;
Hid = Request.Params["HID"];
company = Request.Params["Company"];
year = Request.Params["iYear"];

filename = "Y" + year + "-Results.xls";
try
{

filepath = ("D:\\abc\\Ind") + Hid + "\\" + company ;
if (System.IO.Directory.Exists(filepath))
{
Response.Clear();
Response.Buffer = true;
//Response.ContentType = "text/html";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename);
Response.ContentType = "binary/vnd.ms-excel";
Response.WriteFile(filepath + "\\"+ filename);
Response.Flush();
Response.End();
Response.Write("0");
}
else { Response.Write("1"); }// 表示文件路径不存在
}

}
vb端代码如下:

Const DataPath = "http://192.168.0.141/"

Sub CheckID(URL As String)
Dim WebBrowser: Set WebBrowser = CreateObject("InternetExplorer.Application")
WebBrowser.Visible = False
WebBrowser.Navigate URL
Do While WebBrowser.busy
DoEvents
Loop

On Error Resume Next
If Strings.Left(WebBrowser.Document.body.innertext, 1) = "0" Then
WebBrowser.Quit
'get file
downloadfromServer
Unload Me
Exit Sub
End If
MsgBox "密码错误!", vbCritical, Title
Set WebBrowser = Nothing
End Sub
Private Sub PrintButton2_Click()
Dim Uname, PWord As String
Uname = Strings.Trim(Txt2ID.Text)
PWord = Strings.Trim(TxtPSW2.Text)
CheckID DataPath & "CheckLog.aspx?u=" & Uname & "&p=" & PWord
End Sub

Private Sub UserForm_Layout()
Txt2ID.Text = Workbooks("Main.xls").Worksheets("D").Range("IN").Value
End Sub
Public Sub downloadfromServer()
Dim FileName, phpName As String
Dim fso As New Scripting.FileSystemObject
Dim myfile As Scripting.File
Dim fs As Scripting.TextStream
' Dim DPath As String
Dim iYear As Integer
Dim HID As String '行业号
Dim Company As String '公司号
Dim Indsecret As String '行业密码前4位
Dim Year As String ' 年份
Dim CO As String
Dim COLIST As Variant
COLIST = Array("", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P")
Year = TextBox1.Text
phpName = "down.aspx"
HID = Workbooks("Main.xls").Worksheets("D").Range("IN").Value
CO = Workbooks("Main.xls").Worksheets("D").Range("CO").Text
Company = COLIST(CO)
IEGetStringRequest DataPath & phpName & "?HID=" & HID & "&Company=" & Company & "&iYear=" & Year

End Sub

Function GetFile(FileName As String) As String
Dim FileContents() As Byte, FileNumber As Integer
ReDim FileContents(FileLen(FileName) - 1)
FileNumber = FreeFile
Open FileName For Binary As FileNumber
Get FileNumber, , FileContents
Close FileNumber
GetFile = Strings.StrConv(FileContents, vbUnicode)
End Function


Sub IEGetStringRequest(URL As String)
Dim WebBrowser: Set WebBrowser = CreateObject("InternetExplorer.Application")
WebBrowser.Visible = False

'Dim filepath As String

WebBrowser.Navigate URL
Do While WebBrowser.busy
DoEvents
Loop
On Error Resume Next
If Left(WebBrowser.Document.body.innertext, 1) = "0" Then
MsgBox "文件下载失败!" & Err.Description, vbCritical, Title
End If

End Sub
搜索更多相关主题的帖子: 客户端下载 company Object 对话框 
2007-08-09 12:20
premking
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-30
得分:0 
multiple1902
你会吗?我昨天等了一天了
如果会我先谢了!如果不会闭上你的嘴
2007-08-09 16:26
premking
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-30
得分:0 
我从不激人,我昨天等了一天,今天又重新编辑了一下,这是我早上发的,我不可能一天什么都不干,在那等帖,我昨天已经等一天了,今天我也觉得没什么戏就干别的事去了,我对我的失信道歉,但是我看到你写的话。说实话你的心里素质不咋的!而且说话欠水平。不过还是谢谢你的关注。
2007-08-09 18:32
premking
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-30
得分:0 
顺便说一声我下线了。

2007-08-09 18:35
premking
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-30
得分:0 
如果我是学这个的我问你干吗?
如果能指点迷津不胜感激!请在回帖中指出。如果不想回答就算了。
2007-08-10 09:02
premking
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-30
得分:0 
首先非常感谢你的回答,我也看了你说的问题,在表述问题方面我可能是说的不清楚。
我也在网上搜了相关的内容看了,百度就是我学习的工具!我一直这么认为。当然也请教了身边的“高手”,但是都没有看出什么问题。
应为我对VB不了解我想请教一下downloadfromServer这好像是调用下面的,这样不可以吗?盼请恢回复。

2007-08-10 14:27
premking
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-30
得分:0 
晕倒

2007-08-11 14:58
premking
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-30
得分:0 
看到以前的帖子呵呵真是回味无穷,现在回头结贴,原来出现那种情况是由于调用的页面有时没有完全打开(和服务器运行速度有关),其实只要等到页面完全打开以后就可以了,只要在打开页面方法中加上一个 Do Until WebBrowser.ReadyState = 4 即可。结贴完成,谢谢关注此帖的朋友们
2008-08-21 13:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-161466-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.720223 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved