下面是代码:
<html>
<head><title>文件上传</title></head>
<body alink="#FF0000" link="#000099" vlink="#CC6600" topmargin="8" leftmargin="0" bgColor="#FFFFCC">
<?php
if(!$_POST['upload'])
{
?>
<form enctype="multipart/form-data" action="upload.php" method="post">
<br><br><br><br>
<table cellspacing=0 bordercolordark=#FFFFFF width="60%" bordercolorlight=#000000 bgcolor=#FFFFFF border=1 align="center" cellpadding="2">
<tr bgcolor="#6b8ba8" style="color:FFFFFF">
<td width="100%" align="center" valign="bottom" height="19" colspan="2">文 件 上 传</td>
</tr>
<tr>
<td width="30%" align="right" height="19"><font size=3>文件位置:</font></td>
<td width="70%"><input type="file" name="upload_file" size="30"></td>
</tr>
<tr>
<td width="100%" align="center" colspan="2"><input type="submit" name="upload" value="上载文件"></td>
</tr>
</table>
</form>
</html>
<?php
}else
{
$upload_file=$_FILES['upload_file']['tmp_name'];
$upload_file_name=$_FILES['upload_file']['name'];
if(empty($upload_file_name))
{?>
<script language="javascript">
window.alert("上传文件为空!请您重新选择要上传文件。");
location.href="upload.php";
window.history.go(-1); //-1表示返回,0表示刷新本页,1表示前进等等
window.history.back();
</script>
<?}if($upload_file)
{   
$file_size_max = 6000*6000; //1M限制文件上传最大容量(bytes)
$store_dir = "D:\wamp\www\files\up";  // 上传文件的储存位置(可以任意修改为您要上传位置)
 
//$destination_folder="upload.php"; //上传文件路径
$accept_overwrite = 1;//是否允许覆盖相同文件
// 检查文件大小
if ($upload_file_size > $file_size_max) 
{
echo "对不起,你的文件容量大于规定";
exit;
}// 检查读写文件
if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {
Echo "存在相同文件名的文件";
exit;
}//复制文件到指定目录
if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) {
echo "复制文件失败";
exit;
}}echo '<form enctype="multipart/form-data" action="upload.php" method="post"><br><br><br><br>';
echo '<table cellspacing="0" bordercolordark="#FFFFFF" width="60%" bordercolorlight="#000000" bgcolor="#FFFFFF" border="1" align="center" cellpadding="2">';
echo '<tr bgcolor="#6b8ba8" style="color:FFFFFF"><td width="100%" align="center" valign="bottom" height="19" colspan="2">文件上传后反馈信息</td></tr>';
echo '<tr><td width="40%" align="right">上传文件名称:</td><td width="60%"><font color="red"> ';
echo $_FILES['upload_file']['name'];
echo "</td></tr>";
//客户端机器文件的原名称。 echo '<tr><td width=40% align=right>文件MIME类型:</td><td width="60%"><font color=red> ';
if(empty($_FILES['upload_file']['type']))
{
$_FILES['upload_file']['type']=' ';
}
echo $_FILES['upload_file']['type'];
//文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。 
echo '</td></tr>';echo '<tr><td width=40% align=right>上传文件大小:</td><td width="60%"><font color=red> ';
echo $_FILES['upload_file']['size']."字节";
//已上传文件的大小,单位为字节。 
echo '</td></tr>';echo '<tr><td width=40% align=right>文件储存路径:</td><td width="60%"><font color=red> ';
echo $store_dir.$upload_file_name;
//echo $_FILES['upload_file']['tmp_name'];
//文件被上传后在服务端储存的临时文件名。 
echo '</font></td></tr>';echo '<tr><td width=40% align=right>文件上传状态:</td><td width="60%"><font color=red> ';
$Erroe=$_FILES['upload_file']['error'];
switch($Erroe)
{
case 0:
echo '上传成功</font></td></tr>'; break;
case 1:
echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值</font></td></tr>'; break;
case 2:
echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值</font></td></tr>'; break;
case 3:
echo '文件只有部分被上传</font></td></tr>';break;
case 6:
echo '没有文件被上传</font></td></tr>';break;
}echo '<tr><td width="100%" align="center" colspan="2"><input type="button" name="back" onclick="history.go(-1)" value=" 返回上传页面 "><td><tr>';
echo '</table>';
echo '</form>';
}echo dirname(__FILE__); 
?>
</body>
</html>不清楚upload.php是什么文件,该写啥代码。这是我写的一个upload.php
<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.$uploaddir = 'D:\wamp\www\files\up';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Possible file upload attack!\n";
}echo 'Here is some more debugging info:';
print_r($_FILES);print "</pre>";?> 
上传文件出现这样的问题:Possible file upload attack!
Here is some more debugging info:Array
(
    [upload_file] => Array
        (
            [name] => http_imgload.gif
            [type] => image/pjpeg
            [tmp_name] => D:\wamp\www\files\up\php37.tmp
            [error] => 0
            [size] => 103958
        ))

解决方案 »

  1.   

    $uploaddir = 'D:/wamp/www/files/up';确认该目录存在,并一般用户有“写”权限
      

  2.   

    $uploaddir = 'D:/wamp/www/files/up';确认该目录存在,并一般用户有“写”权限
      

  3.   

    代码都已经是写好的了 你就不用再写upload.php
    <form enctype="multipart/form-data" action="upload.php" method="post">  把这一句的action改为你上传页的名称 也就是本页面 为空也可以
    $store_dir = "D:\wamp\www\files\up\\"; 也改这一句
    确定 files\up 这两个文件夹是存在的
      

  4.   

    我的会员注册表单有个上传头像的老是不成功。希望大家帮忙修改添加,
    代码如下:
     <form action="register.php" method="post" enctype="multipart/form-data" name="form_reg" onSubmit="return chkinput_login(this)"> 
      <tr>
              <td width="120" height="30"><div align="center">用户昵称:</div></td>
              <td colspan="2"><table width="350" height="25" border="0" align="left" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="187">&nbsp;<input type="text" name="usernc" size="25" class="inputcss"></td>
                  <td width="163"><input type="button" name="button_chkusernc" value="是否已用" onClick="open_chknc(form_reg.usernc.value)"></td>
                </tr>
              </table></td>
           </tr>
       <tr>
              <td height="30"><div align="center">性别:</div></td>
               <td height="30" colspan="2">&nbsp;<select name="sex">
                <option value="">请选择</option>
       <option value="男">-男-</option>
       <option value="女">-女-</option>
              </select>          </td>
           </tr>
            <tr>
              <td height="30"><div align="center">密&nbsp;&nbsp;码:</div></td>
              <td height="30" colspan="2">&nbsp;<input type="password" name="userpwd1" size="25" class="inputcss"></td>
            </tr>
    <tr>
              <td height="30"><div align="center">确认密码:</div></td>
              <td height="30" colspan="2">&nbsp;<input type="password" name="userpwd2" size="25" class="inputcss"></td>
            </tr>
    <tr>
              <td height="30"><div align="center">安全问题: </div></td>
              
    <td height="30" colspan="2">&nbsp;<input type="text" name="textfield3" size="25" class="inputcss"></td>
           </tr>
            <tr>
              <td height="30"><div align="center">邮箱:</div></td>
              <td height="30" colspan="2">&nbsp;<input type="text" name="email" size="25" class="inputcss"></td>
            </tr>
    <tr>
              <td height="30"><div align="center">头像:</div></td>
          <td height="30" colspan="2">&nbsp;
            <label>
            <input type="file" name="file" />
          </label></td>
           </tr>
    <tr>
              <td height="30" colspan="3"><div align="center">
                <input type="hidden" name="hiddenField" value="<?php echo date ( "Y-n-d H;i:s" )?>" />
              </div></td>
            </tr>
            <tr>
              <td height="30" colspan="3"><div align="center"><input type="submit" name="submit" value="注册">&nbsp;&nbsp;<input type="reset"  name="reset" value="重写"></div></td>
            </tr>
      </form>
    程序:
    <?php
    $con = mysql_connect("localhost","root","");
    mysql_select_db("bbs",$con );
    mysql_query ("SET NAMES gbk" );
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }echo $name = $_POST[usernc];//用户名
    echo $gender = $_POST[sex];//性别
    echo  $pass =$_POST[userpwd1];//密码
    echo  $question =$_POST[textfield3];//密码
    echo  $email =$_POST[email];//密码
    echo  $logo =$_POST[file];//密码
    $str_sql = "insert into users (username,gender,password,question,email) values ('$name','$gender','$pass', ' $question','$email')";
    $query  = mysql_query($str_sql,$con);
    if($query) {
    echo "插入成功";
    }else{
    echo "插入失败".mysql_error();
    }
    ?>
      

  5.   

    $uploaddir = 'D:/wamp/www/files/up';确认该目录存在,并一般用户有“写”权限