PHP上传文件实现

实现代码见下。

upload.html

<html>
<head>
  <title>上载文件表单</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
  <form method="post" action="upload.php" enctype="multipart/form-data"> 
    <table border=0 cellspacing=0 cellpadding=0 align=center width="100%"> 
    <tr> 
    <td width=55 height=20 align="center"><input type="hidden" name="MAX_FILE_SIZE" value="200000000">文件: </TD> 
    <td height="16">
      <input name="file" type="file" value="浏览"/>
      <input type="submit" value="上传" name="B1"/> 
    </td> 
    </tr> 
    </table> 
  </form>
</body>
</html>

upload.php

<html>
  <head>
    <title>上传结果</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
<body>

<?php 
$uploaddir = "./files/";//设置文件保存目录 注意包含/ 
$type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型 

//获取文件后缀名函数 
function fileext($filename) 
{ 
  return substr(strrchr($filename, '.'), 1); 
} 

//生成随机文件名函数 
function random($length) 
{ 
  $hash = 'CR-'; 
  $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; 
  $max = strlen($chars) - 1; 
  mt_srand((double)microtime() * 1000000); 
  for($i = 0; $i < $length; $i++) 
  { 
  $hash .= $chars[mt_rand(0, $max)]; 
  } 
  return $hash; 
}

$a=strtolower(fileext($_FILES['file']['name'])); 
//判断文件类型 
if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type)) 
{ 
  $text=implode(",",$type); 
  echo "您只能上传以下类型文件: ",$text,"<br>"; 
} 
//生成目标文件的文件名 
else{ 
  $filename=explode(".",$_FILES['file']['name']);
  do 
  { 
    $filename[0]=random(10); //设置随机数长度 
    $name=implode(".",$filename);
    //$name1=$name.".Mcncc";
    $uploadfile=$uploaddir.$name;
  } 
  while(file_exists($uploadfile));
  
  if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile))
  {
		//输出图片预览 
		echo "<center>您的文件已经上传完毕 上传图片预览: </center>";
		echo "<br><center><a href='javascript:history.go(-1)'>继续上传</a></center>";
		echo "<br><center><img src='$uploadfile'></center>";
  } 
  else
  {
		echo "upload error:".$_FILES['file']['error'];
  }
} 
?>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值