国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP開發(fā)之簡單文件上傳到MySql數(shù)據(jù)庫(三)

這一節(jié),我們將設(shè)置幾個自定義函數(shù)來實(shí)現(xiàn)生成新文件地址保存到數(shù)據(jù)庫中。

首先我們上傳的圖片都有一個地址,比如123.jpg, abc.png等等

我們需要保留后面的 .jpg, ?.png的后綴

使用兩個函數(shù)來截取原文件路徑的后綴名

strrchr() 函數(shù)查找字符串在另一個字符串中最后一次出現(xiàn)的位置,并返回從該位置到字符串結(jié)尾的所有字符。

substr() 函數(shù)返回字符串的一部分。

<?php
function fileext($filename)
{  
  return substr(strrchr($filename, '.'), 1);
}
?>

fileext是我們設(shè)置的函數(shù)名稱,filename是原文件名稱。

下面我們就要生成一個新的路徑名來保存到數(shù)據(jù)庫中

這里也需要自定義一個函數(shù)random

設(shè)定一個前綴CR-, 從字母A-Z,a-z,0-9隨機(jī)抽選幾個來混搭來生成新的路徑名前綴

使用函數(shù):strlen() 函數(shù)返回字符串的長度。

<?php
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;
}
?>

生成目標(biāo)文件名

<?php
$filename=explode(".",$_FILES['file']['name']);
  do{
    $filename[0]=random(10); //設(shè)置隨機(jī)數(shù)長度
    $name=implode(".",$filename);
      $uploadfile = $uploaddir.$name;
  }
  while(file_exists($uploadfile));
?>

explode() 函數(shù)把字符串打散為數(shù)組。

implode() 函數(shù)返回由數(shù)組元素組合成的字符串。

最后把所有的文件打包成一個PHP文件upload.php(名字可以根據(jù)需求和功能創(chuàng)建)

<?php
$uploaddir = "upfiles/";//設(shè)置文件保存目錄 注意包含/
$type=array("jpg","gif","bmp","jpeg","png");//設(shè)置允許上傳文件的類型
//獲取文件后綴名函數(shù)
function fileext($filename)
{
  return substr(strrchr($filename, '.'), 1);
}
//生成隨機(jī)文件名函數(shù)
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>";
}
//生成目標(biāo)文件的文件名
else{
  $filename=explode(".",$_FILES['file']['name']);
  do{
    $filename[0]=random(10); //設(shè)置隨機(jī)數(shù)長度
    $name=implode(".",$filename);
    $uploadfile = $uploaddir.$name;
  }
  while(file_exists($uploadfile));
  
  if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile))
  {
    if(is_uploaded_file($_FILES['file']['tmp_name']))
    {
      echo "上傳失敗!";
    }
    else
    {//輸出圖片預(yù)覽
      echo "<tr><td>您的文件已經(jīng)上傳完畢 上傳圖片預(yù)覽: <br><img src='$uploadfile'></td></tr>";
      echo "<tr><td><a href='tu2.php'style='margin-left: 3%;'>繼續(xù)上傳</a></td></tr>";
    }  //可以在前端HTML頁面顯示上傳的文件預(yù)覽
  }
}
?>


繼續(xù)學(xué)習(xí)
||
<?php $uploaddir = "upfiles/";//設(shè)置文件保存目錄 注意包含/ $type=array("jpg","gif","bmp","jpeg","png");//設(shè)置允許上傳文件的類型 //獲取文件后綴名函數(shù) function fileext($filename) { return substr(strrchr($filename, '.'), 1); } //生成隨機(jī)文件名函數(shù) 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>"; } //生成目標(biāo)文件的文件名 else{ $filename=explode(".",$_FILES['file']['name']); do{ $filename[0]=random(10); //設(shè)置隨機(jī)數(shù)長度 $name=implode(".",$filename); $uploadfile = $uploaddir.$name; } while(file_exists($uploadfile)); if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)) { if(is_uploaded_file($_FILES['file']['tmp_name'])) { echo "上傳失敗!"; } else {//輸出圖片預(yù)覽 echo "<tr><td>您的文件已經(jīng)上傳完畢 上傳圖片預(yù)覽: <br><img src='$uploadfile'></td></tr>"; echo "<tr><td><a href='tu2.php'style='margin-left: 3%;'>繼續(xù)上傳</a></td></tr>"; } //可以在前端HTML頁面顯示上傳的文件預(yù)覽 } } ?>
提交重置代碼