By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,853 Members | 992 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,853 IT Pros & Developers. It's quick & easy.

File Download not finishing Sub

P: n/a
I have a function that downloads a file to the users computer and it works
fine.

The problem is that I then want the program to rename the file (file.move)
to the same name plus todays date.

The problem is that when you run the program it gets to the:

Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name)

and this does something to the program and it will finish the response
section to write file but never does anything else.

Following is the Sub and it works fine, but never does any code after the
response section. Not the Trace and not the section that does the rename.

************************************
Sub GetFileDownload(strRequest as String)
trace.warn("in file download")
if (strRequest <"")

' get absolute path of the file
Dim file as System.IO.FileInfo = new System.IO.FileInfo(strRequest)
' if the file exists on the server
if (file.Exists)

' set appropriate headers
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(file.FullName)
Response.End()
trace.warn("inside Download strRequest = " & strRequest)
' Dim newFile as System.IO.FileInfo = new System.IO.FileInfo(strRequest &
" " & DateTime.Now.Month & "_" & DateTime.Now.Day & "_" & DateTime.Now.Year)
' if not newFile.Exists
' System.IO.File.Move(file.FullName.ToString(),file. DirectoryName & "\"
& strRequest & " " & DateTime.Now.Month & "_" & DateTime.Now.Day & "_" &
DateTime.Now.Year)
' end if
else
' if file does not exist
StatusMessage.Text = "This file does not exist."
end if
else
StatusMessage.Text = "Please provide a file to download."
end if
trace.warn("At end of Download")
end sub
*************************************************

Why does this happen? I assume it has something to the HTTP pipe.

How can I get this to rename the file after it copies it?

Thanks,

Tom
Nov 7 '06 #1
Share this Question
Share on Google+
3 Replies


P: n/a
a Response.End() terminates the current thread, so no code after it run.
rename before.

-- bruce (sqlwork.com)

"tshad" <ts**********@ftsolutions.comwrote in message
news:%2****************@TK2MSFTNGP02.phx.gbl...
>I have a function that downloads a file to the users computer and it works
fine.

The problem is that I then want the program to rename the file (file.move)
to the same name plus todays date.

The problem is that when you run the program it gets to the:

Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name)

and this does something to the program and it will finish the response
section to write file but never does anything else.

Following is the Sub and it works fine, but never does any code after the
response section. Not the Trace and not the section that does the rename.

************************************
Sub GetFileDownload(strRequest as String)
trace.warn("in file download")
if (strRequest <"")

' get absolute path of the file
Dim file as System.IO.FileInfo = new System.IO.FileInfo(strRequest) ' if
the file exists on the server
if (file.Exists)

' set appropriate headers
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(file.FullName)
Response.End()
trace.warn("inside Download strRequest = " & strRequest)
' Dim newFile as System.IO.FileInfo = new System.IO.FileInfo(strRequest
& " " & DateTime.Now.Month & "_" & DateTime.Now.Day & "_" &
DateTime.Now.Year)
' if not newFile.Exists
' System.IO.File.Move(file.FullName.ToString(),file. DirectoryName &
"\" & strRequest & " " & DateTime.Now.Month & "_" & DateTime.Now.Day &
"_" & DateTime.Now.Year)
' end if
else
' if file does not exist
StatusMessage.Text = "This file does not exist."
end if
else
StatusMessage.Text = "Please provide a file to download."
end if
trace.warn("At end of Download")
end sub
*************************************************

Why does this happen? I assume it has something to the HTTP pipe.

How can I get this to rename the file after it copies it?

Thanks,

Tom


Nov 7 '06 #2

P: n/a
"bruce barker (sqlwork.com)" <b_*************************@sqlwork.comwrote
in message news:%2******************@TK2MSFTNGP04.phx.gbl...
>a Response.End() terminates the current thread, so no code after it run.
rename before.
Is there a way to get around this?

I want to copy the file to another file when this is done. I can copy it
before (but I need to do it after in case he cancels the copy). The
following routine works.

*************************************
Sub GetFileDownload(strRequest as String)
if (strRequest <"")

' get absolute path of the file
Dim file as System.IO.FileInfo = new System.IO.FileInfo(strRequest)
' if the file exists on the server

if (file.Exists)
Dim newFileName as string
newFileName = strRequest.Replace(".txt","_" & DateTime.Now.Month & "_" &
DateTime.Now.Day & "_" & DateTime.Now.Year & ".txt")
Dim newFile as System.IO.FileInfo = new System.IO.FileInfo(strRequest &
" " & DateTime.Now.Month & "_" & DateTime.Now.Day & "_" & DateTime.Now.Year)

if not newFile.Exists
System.IO.File.Copy(file.FullName.ToString(),newFi leName)
end if

' set appropriate headers
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(file.FullName)
Response.End()
else
' if file does not exist
StatusMessage.Text = "This file does not exist."
end if
else
StatusMessage.Text = "Please provide a file to download."
end if
trace.warn("At end of Download")
end sub
************************************************** **********************

But I can't move the Copy section after the Responses (as you said).

I actually found that once you hit the first Resonse.AddHeader - the trace
won't work.

The other problem is - is there a way to know whether the user cancelled the
download? When you get the popup to allow the user to save the file - he
can also cancel it.

Thanks,

Tom
>
-- bruce (sqlwork.com)

"tshad" <ts**********@ftsolutions.comwrote in message
news:%2****************@TK2MSFTNGP02.phx.gbl...
>>I have a function that downloads a file to the users computer and it works
fine.

The problem is that I then want the program to rename the file
(file.move) to the same name plus todays date.

The problem is that when you run the program it gets to the:

Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name)

and this does something to the program and it will finish the response
section to write file but never does anything else.

Following is the Sub and it works fine, but never does any code after the
response section. Not the Trace and not the section that does the
rename.

************************************
Sub GetFileDownload(strRequest as String)
trace.warn("in file download")
if (strRequest <"")

' get absolute path of the file
Dim file as System.IO.FileInfo = new System.IO.FileInfo(strRequest) '
if the file exists on the server
if (file.Exists)

' set appropriate headers
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(file.FullName)
Response.End()
trace.warn("inside Download strRequest = " & strRequest)
' Dim newFile as System.IO.FileInfo = new
System.IO.FileInfo(strRequest & " " & DateTime.Now.Month & "_" &
DateTime.Now.Day & "_" & DateTime.Now.Year)
' if not newFile.Exists
' System.IO.File.Move(file.FullName.ToString(),file. DirectoryName &
"\" & strRequest & " " & DateTime.Now.Month & "_" & DateTime.Now.Day &
"_" & DateTime.Now.Year)
' end if
else
' if file does not exist
StatusMessage.Text = "This file does not exist."
end if
else
StatusMessage.Text = "Please provide a file to download."
end if
trace.warn("At end of Download")
end sub
*********************************************** **

Why does this happen? I assume it has something to the HTTP pipe.

How can I get this to rename the file after it copies it?

Thanks,

Tom



Nov 7 '06 #3

P: n/a
The other thing I would like to be able to do is tell whether the user
presses the Cancel button or not. Since it doesn't come back - how do you
do that. Or can you?

Thanks,

Tom

"tshad" <ts**********@ftsolutions.comwrote in message
news:O1**************@TK2MSFTNGP03.phx.gbl...
"bruce barker (sqlwork.com)" <b_*************************@sqlwork.com>
wrote in message news:%2******************@TK2MSFTNGP04.phx.gbl...
>>a Response.End() terminates the current thread, so no code after it run.
rename before.

Is there a way to get around this?

I want to copy the file to another file when this is done. I can copy it
before (but I need to do it after in case he cancels the copy). The
following routine works.

*************************************
Sub GetFileDownload(strRequest as String)
if (strRequest <"")

' get absolute path of the file
Dim file as System.IO.FileInfo = new System.IO.FileInfo(strRequest) ' if
the file exists on the server

if (file.Exists)
Dim newFileName as string
newFileName = strRequest.Replace(".txt","_" & DateTime.Now.Month & "_"
& DateTime.Now.Day & "_" & DateTime.Now.Year & ".txt")
Dim newFile as System.IO.FileInfo = new System.IO.FileInfo(strRequest &
" " & DateTime.Now.Month & "_" & DateTime.Now.Day & "_" &
DateTime.Now.Year)

if not newFile.Exists
System.IO.File.Copy(file.FullName.ToString(),newFi leName)
end if

' set appropriate headers
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(file.FullName)
Response.End()
else
' if file does not exist
StatusMessage.Text = "This file does not exist."
end if
else
StatusMessage.Text = "Please provide a file to download."
end if
trace.warn("At end of Download")
end sub
************************************************** **********************

But I can't move the Copy section after the Responses (as you said).

I actually found that once you hit the first Resonse.AddHeader - the trace
won't work.

The other problem is - is there a way to know whether the user cancelled
the download? When you get the popup to allow the user to save the file -
he can also cancel it.

Thanks,

Tom
>>
-- bruce (sqlwork.com)

"tshad" <ts**********@ftsolutions.comwrote in message
news:%2****************@TK2MSFTNGP02.phx.gbl...
>>>I have a function that downloads a file to the users computer and it
works fine.

The problem is that I then want the program to rename the file
(file.move) to the same name plus todays date.

The problem is that when you run the program it gets to the:

Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name)

and this does something to the program and it will finish the response
section to write file but never does anything else.

Following is the Sub and it works fine, but never does any code after
the response section. Not the Trace and not the section that does the
rename.

************************************
Sub GetFileDownload(strRequest as String)
trace.warn("in file download")
if (strRequest <"")

' get absolute path of the file
Dim file as System.IO.FileInfo = new System.IO.FileInfo(strRequest) '
if the file exists on the server
if (file.Exists)

' set appropriate headers
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(file.FullName)
Response.End()
trace.warn("inside Download strRequest = " & strRequest)
' Dim newFile as System.IO.FileInfo = new
System.IO.FileInfo(strRequest & " " & DateTime.Now.Month & "_" &
DateTime.Now.Day & "_" & DateTime.Now.Year)
' if not newFile.Exists
' System.IO.File.Move(file.FullName.ToString(),file. DirectoryName &
"\" & strRequest & " " & DateTime.Now.Month & "_" & DateTime.Now.Day &
"_" & DateTime.Now.Year)
' end if
else
' if file does not exist
StatusMessage.Text = "This file does not exist."
end if
else
StatusMessage.Text = "Please provide a file to download."
end if
trace.warn("At end of Download")
end sub
************************************************ *

Why does this happen? I assume it has something to the HTTP pipe.

How can I get this to rename the file after it copies it?

Thanks,

Tom




Nov 8 '06 #4

This discussion thread is closed

Replies have been disabled for this discussion.