472,093 Members | 2,486 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,093 software developers and data experts.

File Download not finishing Sub

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
3 2021
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
"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
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.

Similar topics

5 posts views Thread by galsaba | last post: by
12 posts views Thread by Jerry Camel | last post: by
4 posts views Thread by nick | last post: by
10 posts views Thread by David | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.