下面的源码,是对反馈信息中的上传文件进行判断,如果文件类型不符合系统要求,则返回错误信息,但有一个问题是,这个代码好像没有判断没有上传文件的情况,(上传文件是非必填字段)
我希望实现当没有选择上传文件时,上传文件可以留空,请问这里应该怎么修改一下?$r[filetype]=GetFiletype($file_name);
$r[insertfile]=ReturnDoTranFilename($file_name,0);
$r[filename]=$r[insertfile].$r[filetype];
$r[filepath]="file";
$filepath=$r[filepath]?$r[filepath].'/':$r[filepath];
$fspath['filepath']="/file/";
$fspath['fileurl']="/file/";
$r[savepath]=ECMS_PATH.$fspath['filepath'].$filepath;
$r[url]=$fspath['fileurl'].$filepath.$r[filename];
$r[name]=$r[savepath]."small".$r[insertfile];
$r[yname]=$r[savepath].$r[filename];
$r[tran]=1;
$rstz=$empire->fetch1("select * from {$dbtbpre}enewspublic limit 1");
$qaddimgtype=substr($rstz[qaddtranimgtype],1,strlen($rstz[qaddtranimgtype]));
$qaddimgtype=substr($qaddimgtype,0,strlen($qaddimgtype)-1);
$qaddfiletype=substr($rstz[qaddtranfiletype],1,strlen($rstz[qaddtranfiletype]));
$qaddfiletype=substr($qaddfiletype,0,strlen($qaddfiletype)-1);
$hzm=$qaddimgtype."|".$qaddfiletype;
$hzm=explode("|",$hzm);
if(!in_array($r[filetype],$hzm)){
printerror("NotQTranFiletype","history.go(-1)",1);
}
if(CheckSaveTranFiletype($r[filetype]))
{
if($doetran)
{
$r[tran]=0;
return $r;
}
else
{
printerror("NotQTranFiletype","history.go(-1)",1);
}
}
$cp=@move_uploaded_file($file,$r[yname]);
if(empty($cp))
{
if($doetran)
{
$r[tran]=0;
return $r;
}
else
{
printerror("NotQTranFiletype","history.go(-1)",1);
}
}
DoChmodFile($r[yname]);
$r[filesize]=(int)$file_size;
return $r;
}
我希望实现当没有选择上传文件时,上传文件可以留空,请问这里应该怎么修改一下?$r[filetype]=GetFiletype($file_name);
$r[insertfile]=ReturnDoTranFilename($file_name,0);
$r[filename]=$r[insertfile].$r[filetype];
$r[filepath]="file";
$filepath=$r[filepath]?$r[filepath].'/':$r[filepath];
$fspath['filepath']="/file/";
$fspath['fileurl']="/file/";
$r[savepath]=ECMS_PATH.$fspath['filepath'].$filepath;
$r[url]=$fspath['fileurl'].$filepath.$r[filename];
$r[name]=$r[savepath]."small".$r[insertfile];
$r[yname]=$r[savepath].$r[filename];
$r[tran]=1;
$rstz=$empire->fetch1("select * from {$dbtbpre}enewspublic limit 1");
$qaddimgtype=substr($rstz[qaddtranimgtype],1,strlen($rstz[qaddtranimgtype]));
$qaddimgtype=substr($qaddimgtype,0,strlen($qaddimgtype)-1);
$qaddfiletype=substr($rstz[qaddtranfiletype],1,strlen($rstz[qaddtranfiletype]));
$qaddfiletype=substr($qaddfiletype,0,strlen($qaddfiletype)-1);
$hzm=$qaddimgtype."|".$qaddfiletype;
$hzm=explode("|",$hzm);
if(!in_array($r[filetype],$hzm)){
printerror("NotQTranFiletype","history.go(-1)",1);
}
if(CheckSaveTranFiletype($r[filetype]))
{
if($doetran)
{
$r[tran]=0;
return $r;
}
else
{
printerror("NotQTranFiletype","history.go(-1)",1);
}
}
$cp=@move_uploaded_file($file,$r[yname]);
if(empty($cp))
{
if($doetran)
{
$r[tran]=0;
return $r;
}
else
{
printerror("NotQTranFiletype","history.go(-1)",1);
}
}
DoChmodFile($r[yname]);
$r[filesize]=(int)$file_size;
return $r;
}
代码改为:
r[filetype]=GetFiletype($file_name);if(isset(r[filetype]))
{
exit('没发现有上传文件!');
}$r[insertfile]=ReturnDoTranFilename($file_name,0);
$r[filename]=$r[insertfile].$r[filetype];
$r[filepath]="file";
$filepath=$r[filepath]?$r[filepath].'/':$r[filepath];
$fspath['filepath']="/file/";
$fspath['fileurl']="/file/";
$r[savepath]=ECMS_PATH.$fspath['filepath'].$filepath;
$r[url]=$fspath['fileurl'].$filepath.$r[filename];
$r[name]=$r[savepath]."small".$r[insertfile];
$r[yname]=$r[savepath].$r[filename];
$r[tran]=1;
$rstz=$empire->fetch1("select * from {$dbtbpre}enewspublic limit 1");
$qaddimgtype=substr($rstz[qaddtranimgtype],1,strlen($rstz[qaddtranimgtype]));
$qaddimgtype=substr($qaddimgtype,0,strlen($qaddimgtype)-1);
$qaddfiletype=substr($rstz[qaddtranfiletype],1,strlen($rstz[qaddtranfiletype]));
$qaddfiletype=substr($qaddfiletype,0,strlen($qaddfiletype)-1);
$hzm=$qaddimgtype."|".$qaddfiletype;
$hzm=explode("|",$hzm);
if(!in_array($r[filetype],$hzm)){
printerror("NotQTranFiletype","history.go(-1)",1);
}
if(CheckSaveTranFiletype($r[filetype]))
{
if($doetran)
{
$r[tran]=0;
return $r;
}
else
{
printerror("NotQTranFiletype","history.go(-1)",1);
}
}
$cp=@move_uploaded_file($file,$r[yname]);
if(empty($cp))
{
if($doetran)
{
$r[tran]=0;
return $r;
}
else
{
printerror("NotQTranFiletype","history.go(-1)",1);
}
}
DoChmodFile($r[yname]);
$r[filesize]=(int)$file_size;
return $r;
}
代码改为:
r[filetype]=GetFiletype($file_name);if(isset(r[filetype]))
{
exit('没发现有上传文件!');
}
$r[insertfile]=ReturnDoTranFilename($file_name,0);
$r[filename]=$r[insertfile].$r[filetype];
$r[filepath]="file";
$filepath=$r[filepath]?$r[filepath].'/':$r[filepath];
$fspath['filepath']="/file/";
$fspath['fileurl']="/file/";
$r[savepath]=ECMS_PATH.$fspath['filepath'].$filepath;
$r[url]=$fspath['fileurl'].$filepath.$r[filename];
$r[name]=$r[savepath]."small".$r[insertfile];
$r[yname]=$r[savepath].$r[filename];
$r[tran]=1;
$rstz=$empire->fetch1("select * from {$dbtbpre}enewspublic limit 1");
$qaddimgtype=substr($rstz[qaddtranimgtype],1,strlen($rstz[qaddtranimgtype]));
$qaddimgtype=substr($qaddimgtype,0,strlen($qaddimgtype)-1);
$qaddfiletype=substr($rstz[qaddtranfiletype],1,strlen($rstz[qaddtranfiletype]));
$qaddfiletype=substr($qaddfiletype,0,strlen($qaddfiletype)-1);
$hzm=$qaddimgtype."|".$qaddfiletype;
$hzm=explode("|",$hzm);
if(!in_array($r[filetype],$hzm)){
printerror("NotQTranFiletype","history.go(-1)",1);
}
if(CheckSaveTranFiletype($r[filetype]))
{
if($doetran)
{
$r[tran]=0;
return $r;
}
else
{
printerror("NotQTranFiletype","history.go(-1)",1);
}
}
$cp=@move_uploaded_file($file,$r[yname]);
if(empty($cp))
{
if($doetran)
{
$r[tran]=0;
return $r;
}
else
{
printerror("NotQTranFiletype","history.go(-1)",1);
}
}
DoChmodFile($r[yname]);
$r[filesize]=(int)$file_size;
return $r;
}
现在这样的话如果没选择上传文件,整个反馈信息都不会提交了,
可以使用js来判断:假设文件控件如下:<input type="file" id="upload" />
使用JS代码判断如下:
if(document.getElementById('upload').value.length<=0)
{
alert('请选择上传文件!');
return false;
}