if($_FILES['upfile']['error'] > 0){
switch((int)$_FILES['upfile']['error']){
case UPLOAD_ERR_NO_FILE: echo("请选择有效的上传文件!");break;
case UPLOAD_ERR_FORM_SIZE: echo("你上传的文件总大小超出了最大限制(".$GLOBALS['nAllowSize']."KB)!')");break;
case UPLOAD_ERR_PARTIAL: echo "文件只有部分被上传。 ";break;
case UPLOAD_ERR_NO_FILE: echo "没有文件被上传。";break;}exit;
}else{
$fileSize = sizecount($_FILES['upfile']['size']);//得到大小
$filename = $_FILES['upfile']['name']; $deny   = deny($tablepre,$db);
$suffix = suffix($_FILES['upfile']['name']);
if (in_array($suffix,$deny)){ table("上传失败,你上传了被禁止的文件类型<BR>".$ruturn);exit;}
}
@mkdir ($pathname, 0777);
$fileAddr = $pathname."/".$filename;
if(!move_uploaded_file($_FILES['upfile']['tmp_name'], $fileAddr))
{@rmdir($pathname);table("上传失败,请确认你有操作权限".$ruturn);exit;}其中table\sizecount\deny\suffix是自定义函数function deny($tablepre,$db)//得出被禁止上传文件
{
$rs = $db->Execute("SELECT `name` FROM `".$tablepre."exercise_deny`");
if ($db->ErrorMsg()){ table('Mysql error: '.$db->ErrorMsg().'<BR>');exit;}//对错误的处理
while ($row = &$rs->FetchRow()) { $deny[] = $row[0]; }
return $deny;
}function suffix($filename)//得到文件后缀名
{.....}

解决方案 »

  1.   

    我用的是mssql,那样子的该怎么改啊!在线等待答复!
      

  2.   

    1) 因为你用了
    <input type="hidden" name="MAX_FILE_SIZE" value="30000">
    限制文件大小,所以有这个warning2) 因为mssql语法跟mysql不一样,特别是日期,mysql可以是字符串,mssql必须是日期形式:#2005-5-17#
    把'$pubdate'改成 #$pubdate#要学编程就要学会调试,这种问题虽然我跟你说了你会知道,但是印象不深的,只有自己经历了自己去发现了才真正是属于自己的。
      

  3.   

    你用ADODB吧
    不管是什么数据库都不用你来管
    你只要知道怎么标准的sql语句就可以了
      

  4.   

    我把'$pubdate'改成  #$pubdate#  后,就出现了以下的问题哦!!PHP Warning: mssql_query(): message: 在此上下文中不允许使用 '#2005'。此处只允许使用常量、表达式或变量。不允许使用列名。 (severity 15) in E:\qyjweb\addnews.php on line 46 PHP Warning: mssql_query(): Query failed in E:\qyjweb\addnews.php on line 46 
      

  5.   

    时间可以这样写:
    $t = date("Y-m-d H:i:s");
    然后在写SQL语句中写'$t',我在MSSQL下用过没问题
      

  6.   

    我的问题算是暂时解决了,是把convert(varchar,pubdate,120) as date2嵌入就好了。不过关于那为老兄说的输出格式的变化,我试过,但是还是出现问题,所以还是不知道这个问题到底怎么解决!!有点失败!!