|
|
Demo ASP: source.asp |
2024-11-15
|
Source of file file_upload.asp:
<!--#include file="header.inc"-->
This example shows you how to use Apache::ASP to handle file uploads.
You need to have a recent version CGI.pm to use this facility.
Just click Browse..., select your file, hit 'file upload' and
voila!, you will see the data in the file below.
<p>
Note that the current limit set on uploads for this demo is
<tt>
<%
my $limit = $Server->Config('FileUploadMax') || $CGI::POST_MAX;
$limit = ($limit eq '-1') ? 'NONE' : $limit;
print "$limit";
%>
</tt>.
<% if($limit && ($limit < $Request->{TotalBytes})) { %>
This limit was <b>exceeded</b> by a POST of <tt><%= $Request->{TotalBytes} %></tt> bytes!
<% } %>
<table border=0><tr><td valign=center>
<%
use CGI;
my $q = new CGI;
print $q->start_multipart_form();
print $q->hidden('file_upload', 'Hidden File Upload Form Text');
print $q->filefield('uploaded_file','starting value',30,100);
print "</td><td valign=center>";
print $q->submit('Upload File');
%>
</td></tr></table>
<br>
<b>File Upload Type:</b>
<%=
$q->checkbox_group(-name=>'extensions',
-values=>['GIF','HTML','OTHER'],
-defaults=>['HTML']
)
%>
</form>
<%
my $filehandle;
if($filehandle = $Request->{Form}{uploaded_file}) {
%>
Upload Type Specified: <%= join(', ', $Request->Form('extensions')) %><br>
<%
local *FILE;
my $upload = $Request->{FileUpload}{uploaded_file};
print "<table>";
my @data = (
'$Request->{TotalBytes}', $Request->{TotalBytes},
'Hidden Text', $Request->Form('file_upload'),
'Uploaded File Name', $filehandle,
# we only have the temp file because of the
# FileUploadTemp setting
'Temp File', $upload->{TempFile},
'Temp File Exists', (-e $upload->{TempFile}),
'Temp File Opened', (open(FILE, $upload->{TempFile}) ? 'yes' : "no: $!"),
map {
($_, $Request->FileUpload('uploaded_file', $_))
} sort keys %$upload
);
close FILE;
while(@data) {
my($key, $value) = (shift @data, shift @data);
%>
<tr>
<td><b><font size=-1><%=$key%></font></b></td>
<td><font size=-1><%=$value%></font></td>
</tr>
<%
}
print "</table>";
%>
<pre>
UPLOADED DATA
=============
<%
while(<$filehandle>) {
print $Server->HTMLEncode($_);
}
%>
</pre>
<% } %>
<!--#include file="footer.inc"-->
view this file's source