ASP page to open/download a file

M

Matt

I want to write a ASP page to open/download a file

In fileview.jsp, I have the file browse, and when user click submit button,
fileview2.asp should open the file.

fileview.asp
============
<FORM ACTION="fileview2.asp" method="POST">
<P><input type="FILE" name="filename">
<P><input type="submit">

fileview2.asp
============
<%
String filename = Request.Form("filename")
Response.Redirect = filename
%>

However, this is not working. any ideas? please advise what I am missing.
thanks!!
 
S

Steven Burn

Where is the file you are trying to access?

If it's on your server..... check to make sure the path is correct before
re-directing

If it's on the client machine, you've no hope of using redirecting as it
needs to be uploaded to your server first.

--

Regards

Steven Burn
Ur I.T. Mate Group
www.it-mate.co.uk

Keeping it FREE!
 
R

Ray Costanzo [MVP]

With what you seem to be decribing, the action that you want to take place
are:

1. User load page with form.
2. User browses for and selects a file.
3. User submits form.
4. File is uploaded to server.
5. Server SAVES file to file system.
6. Browser is redirected to this saved file.

First of all, "String filename = Request.Form("filename")" isn't valid code.
"filename = Request.Form("filename")" would be okay, but that'd just return
the file path that was in the <input type=file> box.

To get the actual file uploaded and saved to the server, you need to use an
upload component.¹ You'd want to use that component to save the file to the
file system and then redirect the user to it.

<sidenote>Why do you want to do this, anyway? It's kinda odd. If I want to
open a file that exists on my file system, my natural reaction would not be
to upload the file to a web site so that it can then turn around and give it
right back to me. But, to each his own.</sidenote>

For handling file uploads, see here:
http://www.aspfaq.com/show.asp?id=2189
Before anything server-side will work for you, make note of the ENCTYPE
value of the form tag.

--------------------------------

Now I'm beginning to thing that you're trying to redirect the user to the
file on his machine. Is this true? If so, I also find this odd, but that's
fine. :] If that's the case, you can do something like this:

<%
if request.form("filename") <> "" Then response.redirect
request.form("filename")
%>

<form method="post" action="default.asp">
<input type="file" name="filename" />
<input type="submit" />
</form>


Ray at home

¹ You can process file uploads without a component and just use pure
VB/Jscripting, but advise against this.
 
R

Ray Costanzo [MVP]

..Redirect actually sends an instruction to the browser in the header of the
response, so you can tell a browser to redirect to a file that is local to
the machine. :]

Ray at home
 
S

Steven Burn

hehe, woops.... (wasn't aware of that one (though to be honest, I've never
had a reason to try it so shouldn't have said there's no hope in the first
place :eek:\ )).

Ty for the correction ;o)

--

Regards

Steven Burn
Ur I.T. Mate Group
www.it-mate.co.uk

Keeping it FREE!


Ray Costanzo said:
.Redirect actually sends an instruction to the browser in the header of the
response, so you can tell a browser to redirect to a file that is local to
the machine. :]

Ray at home

Steven Burn said:
Where is the file you are trying to access?

If it's on your server..... check to make sure the path is correct before
re-directing

If it's on the client machine, you've no hope of using redirecting as it
needs to be uploaded to your server first.

--

Regards

Steven Bu
 
B

Bob Barrows [MVP]

Really? Can you give an example of this? I just made a quick try and
received a "page not found" error. If this is true, its' a huge security
hole isn't it? What's to prevent a hacker from redirecting to an executable
on the user''s machine (if it exists).

Bob
.Redirect actually sends an instruction to the browser in the header
of the response, so you can tell a browser to redirect to a file that
is local to the machine. :]

Ray at home

Steven Burn said:
Where is the file you are trying to access?

If it's on your server..... check to make sure the path is correct
before re-directing

If it's on the client machine, you've no hope of using redirecting
as it needs to be uploaded to your server first.

--

Regards

Steven Bu
 
R

Ray Costanzo [MVP]

Put this in a page and load it, as an example that'll let you specify what
local file to be redirected to.

<%
if request.form("filename") <> "" Then response.redirect
request.form("filename")
%>

<form method="post" action="default.asp">
<input type="file" name="filename" />
<input type="submit" />
</form>

If you browse to an executable, you'll get prompted to download.
Response.Redirect "C:\windows\notepad.exe"

Ray at home
 
B

Bob Barrows [MVP]

Hmm, surprisingly, nothing happens. I thought I would get an error, but the
page simply reloads when I click Submit. I used Response.Write to verify
that the page was submitting and it was.

Here's the code:

<%
if request.form("filename") <> "" Then
Response.Write request.form("filename") & "<BR>"
response.redirect request.form("filename")
end if
%>
<html>
<BODY>
<form method="post" action="default.asp" id=form1 name=form1>
<input type="file" name="filename" style="WIDTH: 500px; HEIGHT: 22px"
size=28>
<input type="submit" value="Submit Query">
</FORM></BODY></HTML>

If I comment out the redirect, the response.write occurs.
When I uncomment it, it seems like the default.asp page reloads

Bob Barrows
 
B

Bob Barrows [MVP]

Strange. I'm doing it on my localhost, which is shown in the browser as
"Local Intranet".

I'm using XP SP2 so maybe that security hole has been closed.

Bob
 
R

Ray Costanzo [MVP]

I'm now at work where I have gotten around to installing SP2, and same
thing, it does not redirect me to my local file, Internet, intranet, or
trusted sites zone.

On a W2K Advanced Server SP 4, redirecting to a local file works. And
surprisingly, it also redirects on Windows Server 2003.

Ray at work
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,780
Messages
2,569,611
Members
45,280
Latest member
BGBBrock56

Latest Threads

Top