++wog for getting you on the right track and ++tilly for explaining where and why the problem was arising.
I just thought that I would add this as an extra.
To help show what you can do with the "local" filename and why you might want it. Also, if you are using CGI.pm, you might aswell
use it.
#!/usr/bin/perl
use CGI;
$co = new CGI;
if (!$co->param()) {
print $co->header,
$co->start_html('upload a file'),
"<table border=1><tr><td>",
$co->center('upload a file'),
$co->start_multipart_form,
$co->filefield(-name=>'file1', -size=>30),
$co->br,
$co->submit(-value=>'Upload'),
$co->end_form,
"</td></tr></table>";
} else {
$file = $co->param('file1');
print $co->header,
$co->start_html('file uploaded'),
"Uploading $file ...<br>";
@filename = split(/\\/, $file);
open (FILE, ">safe/$filename[$#filename]"),
print "... $filename[$#filename] uploaded.";
print FILE <$file>;
close FILE;
}
print $co->end_html;
This is working, but of course, this script is JUST AN EXAMPLE, and you should not trust input forms. Use -T and check the file path for bad chars. Basic error checking, referrer checking, etc.
"Better secure than sorry." -xtype
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.