PHP上传文件以及文件操作

首先是连接数据库,将要传入的文件信息录入数据库

<?php

$username='root';//数据库链接过程
$userpass='q12we3';
$host='127.0.0.1';
$database='music';
$conn=new mysqli($host,$username,$userpass,$database);
if(!$conn){
    echo 'Could not connect to database.';
    exit;
}

?>

然后是对传入文件的判断:

if($_FILES['userfile']['error'] > 0) {//判断传入文件错误类型
    echo '上传失败 : ';
    switch ($_FILES['userfile']['error']) {
        case '1': echo '<p>抱歉,您上传的文件过大</p>';  
            break;
        case '2': echo '<p>抱歉,您上传的文件过大</p>';  
            break;
        case '3': echo '<p>抱歉,网络原因文件上传错误,请后退重新上传</p>';  
            break;
        case '4': echo '<p>抱歉,请正确选择文件</p>';  
            break;
        case '6': echo '<p>抱歉,系统错误,请联系管理员</p>';  
            break;
        case '7': echo '<p>抱歉,系统错误,请联系管理员</p>';  
            break;
    }
    exit;
}

/* 使用mime_content_type()函数进行文件MIME类型的判断
  比单纯的$_FILES['userfile']['type'];判断更加精确
  以防止文件过滤误伤 */
if(mime_content_type($fileurl) != "audio/mpeg") {
    echo "<p style='color:red;'>您上传的文件貌似不是mp3格式的文件呢~</p>";
    echo "您上传的文件类型为: ".mime_content_type($fileurl)."<p>请上传正确的MP3格式的文件~!</p>";
    exit;
}

上面我们需要的是用户传入一个MP3格式的文件

接下来对传入的文件进行操作

$name = trim($_POST['name']);//html表单post到的信息
$autor = trim($_POST['autor']);
$fileurl = $_FILES['userfile']['tmp_name'];//上传后的临时文件地址
$filename = $_FILES['userfile']['name'];//用户文件名
$filesize = formatBytes($_FILES['userfile']['size']);//调用单位转换函数,将B转换为MB

function formatBytes($size) {//存储数据单位转换
    $units = array(' B', ' KB', ' MB', ' GB', ' TB');
    for ($i = 0; $size >= 1024 && $i < 4; $i++)
    $size /= 1024;
    return round($size, 2).$units[$i];
}

最后,将文件移动到指定路径,并将记录写入数据库

$newname = $autor.'-'.$name.'.mp3';//创建新的文件名
$swichtype = "music/".iconv('utf-8','gbk',$newname);//将UTF-8编码转化为windows系统的GBK编码进行命名
move_uploaded_file($fileurl,$swichtype);//移动文件到置顶目录

echo "您正在上传 : ".$filename."<p> 大小 : ".$filesize."</p>".$newname."</p> ";

$address = "music/".$autor.'-'.$name.'.mp3';//创建以导入数据库的文件路径
$sql = "INSERT INTO `music` (`name`, `autor`, `address`) VALUES ('".$name."', '".$autor."', '".$address."');";

$result = $conn -> query($sql);
    if($result) {
        echo "<p style='color:green;'>恭喜,歌曲已经成功上传到云端~</p>";
    }else {
        echo "<p style='color:red;'>抱歉,您上传的歌曲在云端已经有了呢~,您可以尝试重新搜索~</p>";
    }
$conn -> close();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值