Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php文件上传到数据库_Php_Mysql_Upload - Fatal编程技术网

php文件上传到数据库

php文件上传到数据库,php,mysql,upload,Php,Mysql,Upload,我正在尝试将文件上载到目录并将其值存储在数据库中。我不知道这段代码有什么问题。提前感谢您的帮助 pic显示回音时的变量 $con=connect(); $file_name=$_FILES['file']['name']; $file_size=$_FILES['file']['size']/1024; $display_name=$_POST['display_name']; $upload_dir='../uploads/docs/'; $file_

我正在尝试将文件上载到目录并将其值存储在数据库中。我不知道这段代码有什么问题。提前感谢您的帮助 pic显示回音时的变量

$con=connect();
    $file_name=$_FILES['file']['name'];
    $file_size=$_FILES['file']['size']/1024;
    $display_name=$_POST['display_name'];

    $upload_dir='../uploads/docs/';
    $file_temp=$_FILES['file']['tmp_name'];
    $file_path=$upload_dir.$file_name;
if(move_uploaded_file($file_temp,$file_path))
        {
            if($con)
            {
            $query=mysqli_query($con,"insert into dcument_upload 
            values(null,'$display_name','$file_path','$file_size')");
            $rr=mysqli_num_rows($query);
            if($rr)
                {
                    echo 'Uploaded';
                    echo $rr;
                }else
                {
                    echo "Upload failed";
                }
            }
            else
            {
                die("Cannot Connect");

            }
        }   
        else
        {
            echo "<br>Upload Failed<br>Try Again!";
        }
$con=connect();
$file\u name=$\u FILES['file']['name'];
$file\u size=$\u FILES['file']['size']/1024;
$display\u name=$\u POST['display\u name'];
$upload_dir='../uploads/docs/';
$file\u temp=$\u FILES['file']['tmp\u name'];
$file\u path=$upload\u dir.$file\u name;
如果(移动上传的文件($file\u temp,$file\u path))
{
如果($con)
{
$query=mysqli\u query($con,“插入dcument\u上传
值(null、$display_name、$file_path、$file_size'));
$rr=mysqli\u num\u行($query);
如果($rr)
{
echo‘上传’;
echo$rr;
}否则
{
echo“上传失败”;
}
}
其他的
{
死亡(“无法连接”);
}
}   
其他的
{
echo“
上传失败
重试!”; }
您需要先获取文件的内容:

$file_data = file_get_contents($file_path);
$query = mysqli_query($con, "INSERT INTO `dcument_upload ` VALUES (null, '". mysqli_real_escape_string($con, $display_name)."', '".mysqli_real_escape_string($con, $file_data). "', '".mysqli_real_escape_string($con, $file_size)."')");

另外,使用转义特殊字符有助于防止SQL注入。

试试这个。您将变量放在单引号下

<?php
    $con = connect();
    $file_name = $_FILES['file']['name'];
    $file_size = $_FILES['file']['size']/1024;
    $display_name = $_POST['display_name'];

    $upload_dir = '../uploads/docs/';
    $file_temp = $_FILES['file']['tmp_name'];
    $file_path = $upload_dir.$file_name;

    if(move_uploaded_file($file_temp,$file_path)) {
        if($con) {
            $query = mysqli_query($con,"insert into dcument_upload values(null, ".mysqli_real_escape_string($con, $display_name).", ".mysqli_real_escape_string($con, $file_path).", ".mysqli_real_escape_string($con, $file_size)".)");
            $rr = mysqli_num_rows($query);

            if($rr) {
                echo 'Uploaded';
                echo $rr;
            } else {
                echo "Upload failed";
            }
        } else {
            die("Cannot Connect");
        }

    } else {
        echo "<br>Upload Failed<br>Try Again!";
    }

我已将文件信息存储在单独的变量中。我没有直接插入它们运行此文件时的输出是什么?IE:它是否输出您的警告/错误消息,或者是否存在任何PHP错误?通过插入查询检查受影响的行数您是否有任何错误???解释什么不起作用??文件正在上载到服务器,但我无法将文件信息插入数据库