php || 上传文件,图片到数据库mysql

10 篇文章 0 订阅

前端页面代码(load_file.php):

 <html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <title>上传页面</title>
        </head>
        <body>
             <script language="javascript">
                 function Juge(theForm){
                     if(theForm.form_data.value == ""){
                         alert("请选择一张图片上传!");
                         theForm.upfile.focus();
                     }
                     if(theForm.form_description.value == ""){
                         alert("请填好图片说明!");
                         theForm.content,focus();
                     }
                     if(theForm.form_description.value.length>30){
                         alert("图片说明必须少于30字。");
                         theForm,content,focus();
                     }
                 }
            </script>
            <div id="maxdiv">


      <div id="left">
                 <form class="form" enctype="multipart/form-data" action="up_loadfile.php" method="post">
                     <table align="center" border="1">
                         <tr>
                             <td>选择图片:</td>
                             <td><input name="form_data" type="file" size="40" class="xuanze"></td>
                         </tr>
                         <tr>
                             <td>输入说明:</td>
                             <td><input name="form_description" type="text" size='30'>(*>限30字)</td>
                         </tr>
                         <tr>
                             <td colspan="2">
                                 <center>
                                     <input type="submit" name="submit" value="提交" class="tijiao">
                                     <input type="reset" name="reset" value="重置" class="chongzhi">
                                 </center>
                             </td>
                        </tr>
                     </table>
                 </form>
                 <div id="button">
                    <form >
            </div>
	</body>
	</html>

检查是否是图片,并上传到数据库(up_loadfile.php):

<?php
    header("Content-Type: text/html; charset=UTF-8");
    if (isset($_POST['submit'])) {
    //开启Session
    session_start();
    $valid_user=$_SESSION['valid_user'];
    $table=$_SESSION['table'];

    //获取说明信息与图片
    $form_description = $_POST['form_description'];
    $form_data = $_FILES['form_data']['tmp_name'];
    $form_data1 = $_FILES['form_data'];

    //获取图片名字大小类型
    $form_data_name = $_FILES['form_data']['name'];
    $form_data_size = $_FILES['form_data']['size'];
    $form_data_type = $_FILES['form_data']['type'];

    //定义允许的类型
    $typelist=array("image/jpeg","image/jpg","image/png","image/gif");


    //连接数据库
    $dsn = 'mysql:dbname=SimplePhotos; host=localhost';
    $pdo = new PDO($dsn, 'jsj181', '5287271');
    $pdo->query("SET NAMES utf8");
    $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));

    //类型过滤和检测是否上传了图片
    if(!in_array($form_data_type,$typelist)){
         echo "<script>alert('".$upfile["type"]."没有选择图片或上传文件类型错误!请选择一张图片!');window.location.href='upimage.php?id=".$table."'</script>";
    }
    //检测说明信息是否填好
    elseif($form_description == "")
    {
        echo "<script>alert('请填写好相关说明信息:');window.location.href='upimage.php?id=".$table."'</script>";
    }
    elseif(isset($form_description{60}))
    {
         echo "<script>alert('图片说明必须少于30字');window.location.href='upimage.php?id=".$table."'</script>";
    }
    else{
        $result = $pdo->query("INSERT INTO $table (username,description,bin_data,filename,filesize,filetype)
                    VALUES ('$valid_user','$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
        if($result) {
            echo "<script>alert('图片上传成功!');window.location.href='first.php?id=".$table."'</script>";
            } else {
                echo "<script>alert('图片上传失败,请重新上传!');window.location.href='upimage.php?id=".$table."'</script>";
            }
     }
}
?>

图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值