perl文件上传程序,支持多文件!

原创 2001年12月29日 13:10:00
一个真正支持二进制文件上传,允许多文件上传,可以对文件后缀进行限制,生成完整信息的小程序。。:)



其实是我看了精华区的那篇文件上传文件后,感觉有点问题,所以特此更正一下,在此也感谢以前无私奉献的各位兄弟。。

原先的上传由于没有采用binmode方法,所以如果上传图片或二进制文件都会出错,现在这个都已经解决了,而且还可以多文件同时上传。。:)另外加了注释。

最后,我是一个PERL新手,如有不当,还望各位高手指点一二,小生不胜感激:)



代码如下:

default.htm:







File 1:






File 2:

















psupload.pl:

#如果用CGI方式来行动这个文件,请把下段路径改成你的机器配置

#!f:/activeperl/bin/perl



use CGI;

$upfilecount = 1;

$maxuploadcount = 2; #限制上传文件的最大数

$basedir = "c:/perltest/perlupload"; #上传的文件存放地址

$allowall = "no"; #是否不限制文件后缀上传

@theext =(".zip",".exe",".gif"); #要限制的文件后缀名



print "Content-type: text/html/n/n";



while ($upfilecount <= $maxuploadcount) {

my $req = new CGI;

my $file = $req->param("FILE$upfilecount");

if ($file ne "") {

my $fileName = $file;

$fileName =~ s/^.*(//|//)//; #用正则表达式去除无用的路径名,得到文件名

my $newmain = $fileName;

my $filenotgood;

if ($allowall ne "yes") {

$extname = lc(substr($newmain,length($newmain) - 4,4)); #取后缀名

for(my $i = 0; $i < @theext; $i++){ #这段进行后缀名检测

if ($extname eq $theext[$i]){

$filenotgood = "yes";

last;

}

}

}

if ($filenotgood ne "yes") { #这段开始上传

open (OUTFILE, ">$basedir/$fileName");

binmode(OUTFILE); #务必全用二进制方式,这样就可以放心上传二进制文件了。而且文本文件也不会受干扰

while (my $bytesread = read($file, my $buffer, 1024)) {

print OUTFILE $buffer;

}

close (OUTFILE);

$message.=$file . " 已成功上传!
/n";

}

else{

$message.=$file . " 文件后缀不符合要求,上传失败!
/n";

}

}

$upfilecount++;

}



print $message; #最后输出上传信息

< script language="JavaScript">ShowReply('','donald','2001.03.19 15:39');

我已经照这个方法做了,也显示成功上传,但为什么我找不到传上取得文件,请大哥大姐们帮帮我。

< script language="JavaScript">ShowReply('','pan','2001.04.27 11:07');

有一行错了

if ($filenotgood ne "yes") { #这段开始上传

这行“ne”应该是“eq”,否则,符合文件后缀的文件会报上传失败,

不符合的反而能成功。

回应人:kyo 回应时间:2001.06.13 12:30:35

I can not find the uploaded file also


CGI模块早就提供了上传的办法。

perl post 上传文件

###列出组信息 use LWP::UserAgent; use LWP; use Encode; use LWP::Simple; use LWP::UserAgent; use HTTP::C...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2017年01月22日 17:08
  • 454

commons-fileupload文件上传,支持多文件

FileItemFactory fileItemFactory = new DiskFileItemFactory(); ServletFileUpload servletFileUpload =...
  • suwing6406029
  • suwing6406029
  • 2014年07月31日 21:56
  • 429

多文件上传的一个局部小程序代码

多文件上传首先HTML 源文件中 添加文件上传Html组件function addFile(){      //添加文件上传Html组件      var str =      document.ge...
  • taomanman
  • taomanman
  • 2010年04月19日 10:58
  • 1295

Android实现文件上传(支持多文件)

大家在做android项目的时候,肯定会遇到文件上传(比如图片,音乐等),今天我把我刚做的一个图片上传功能分享一下, 基本的流程就是:定义一个HttpClient→定义post请求(HttpPost...
  • niulijieniu
  • niulijieniu
  • 2016年03月01日 15:17
  • 1260

用 perl 实现文件上传

示例的 HTML 文件如下:File 1: File 2: 后台的 Perl 程序如下:#!/usr/bin/perl#########################################...
  • yhb72
  • yhb72
  • 2005年11月27日 13:25
  • 665

新鲜出炉:基于HTML5的jquery文件上传插件(多文件选择、带进度条、完整可用)

一、前言     首先,为什么要写这个插件呢?分析下现在大家用的比较多的上传插件,大多是flash版本的,事实上我在前段时间一直用的是一个叫做uploadify的插件,官网http://www.up...
  • never_say_goodbye
  • never_say_goodbye
  • 2013年02月21日 15:28
  • 15784

Jfinal框架下结合ajaxFileupload实现多文件上传

距离写代码时间有点长了,没有及时总结,现在忘得差不多了。不过大概思路还在,也是有点参考价值的! demo下载 思路: 由于jfinal框架自身的问题,在实现多文件上传时很难获取所有文件的...
  • JodenHe
  • JodenHe
  • 2017年02月09日 11:37
  • 12719

CI 多文件上传

CI 多文件上传报错
  • qq_22630169
  • qq_22630169
  • 2017年04月01日 20:56
  • 502

文件上传(多文件)

Spring MVC 文件上传 Required String parameter 'xxx' is not present
  • zengxianxue
  • zengxianxue
  • 2017年11月18日 11:27
  • 66

java 实现html5多文件选择上传_h5多文件上传_ajax异步多文件上传_java处理多文件上传

java 实现html5多文件选择上传_h5多文件上传_ajax异步多文件上传_java处理多文件上传 html页面如下 muti file upload ...
  • graceup
  • graceup
  • 2017年09月08日 18:29
  • 1310
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:perl文件上传程序,支持多文件!
举报原因:
原因补充:

(最多只允许输入30个字)