Upload a file on server

P

pjsenthil

Hi
I have to upload a file on to a server.I have tried it.

In my form of an HTML page, if i have a input file type ( file browse
element) it is working properly.and i am able to upload.


But in my case.I have so many images .i will list in the the browser
with check box for each and image preview for each.The user will check
the multiple check boxs and will upload.

if i am trying out this. i am not able to upload the file on the
server.
the problem wat i am facing is,...

the below is partial code...
-------------------------------------------------------

if($type_ok){
if(!$overwrite){ # if $overwite = 0 or flase, rename file using the
checkex sub

$fileName = check_existence($destination,$fileName);
}
# create a new file on the server using the formatted ( new instance
) filename

$r[$cnt]=$file;
$cnt++;
if(open(NEW, ">$destination$S{S}$fileName")){
$VAR{err} .= $!;

if($isWIN){ binmode NEW; } else { chmod(0777,
"$destination$S{S}$fileName"); }
# start reading users HD 1 kb at a time.

%note if the data from file browse it is working well..

but in case of check box .then the below read function is not working..
i have checked that $file value...it is getting the path of the source
perfectly.
****the problem is it not going into the while loop %

while(read($file, $buffer, 1024))
{

print NEW $e;
}
# close the new file on the server and we're done
close NEW;
} else {
# return the server's error message if the new file could not be
created
return qq~Error: Could not open new file on server. $!~;
}

# check limit hasn't just been overshot
if(-s "$destination$S{S}$fileName" > $limit){ # -s is the file size
unlink("$destination$S{S}$fileName"); # delete it if it's over the
specified limit

return qq~File exceeded limitations : $fileName~;
}
} else {

return qq~Bad file type : $file_type~;
}
if(-s "$destination$S{S}$fileName"){

return qq~Success $fileName~; #success
} else {
unlink("$destination$S{S}$fileName");


return ; qq~Upload failed : No data in $fileName. No size on server's
copy of file.
Check the path entered. $VAR{err}~;
}
-------------------------------------------

i have written the comments with in the code above..as (%-------%).


So can one suggest me wat problem it can be,.
pl
 
A

A. Sinan Unur

(e-mail address removed) wrote in
But in my case.I have so many images .i will list in the the browser
with check box for each and image preview for each.

This is not a Perl question. You are understanding of CGI is lacking.

To be able to create a form with a thumbnail for each image, you need to
upload each image to the server.

Or, use a signed Java applet or Activex object. Check out how online
photo stores do it.

(Yes, one could ask the user for a directory to browse on the hard drive,
then trust client-side Javascript to display such thumbs, or create and
serve an HTML document with links to images on the user's hard drive,
but I would not even consider it for obvious security issues).
the below is partial code...

This code is worse than useless in that it creates the distinct
impression that you don't have the foggies idea what you are doing.

You should post a small script that others can run just by copying and
pasting.

If you want to insert extended comments in the middle of the script, just
use

=for usenet

blah blah blah

=cut
# start reading users HD 1 kb at a time.

I won't be visiting your site soon!
while(read($file, $buffer, 1024))
{

print NEW $e;
}


You probably want sysread and syswrite. However, you would do yourself a
favor by reading about uploading in the CGI.pm manual even if you end up
not using CGI.pm.
# close the new file on the server and we're done
close NEW;

By the way, this is exactly the kind of place where you should put a
limit on POSTs, check if every single output operation succeded, if close
succeded etc.

I don't understand any part of the code below, presumably because it is
missing crucial parts and it is formatted awfully.
} else {
# return the server's error message if the new file
could not be
created
return qq~Error: Could not open new file on server.
$!~;
}

# check limit hasn't just been overshot
if(-s "$destination$S{S}$fileName" > $limit){ # -s is the
file size
unlink("$destination$S{S}$fileName"); # delete it if
it's over the
specified limit

return qq~File exceeded limitations : $fileName~;
}
} else {

return qq~Bad file type : $file_type~;
}
if(-s "$destination$S{S}$fileName"){

return qq~Success $fileName~; #success
} else {
unlink("$destination$S{S}$fileName");


return ; qq~Upload failed : No data in $fileName. No size on
server's
copy of file.
Check the path entered. $VAR{err}~;
}

Don't. Why make it harder for people to help you?

So can one suggest me wat problem it can be,.

Learn about CGI in general. Read the posting guidelines for this group,
and conform to them.

Sinan
 

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

Forum statistics

Threads
473,744
Messages
2,569,479
Members
44,900
Latest member
Nell636132

Latest Threads

Top