php文件上传到数据库
我正在尝试将文件上载到目录并将其值存储在数据库中。我不知道这段代码有什么问题。提前感谢您的帮助 pic显示回音时的变量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_
$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错误?通过插入查询检查受影响的行数您是否有任何错误???解释什么不起作用??文件正在上载到服务器,但我无法将文件信息插入数据库