PHP表单文件上传到Mysql和服务器

时间:2015-08-01 11:40:45

标签: php html mysql forms

我希望somone可以帮助我解决一些我正在努力的方案。

它的基础是我有一个带有文件上传的PHP表单,我想提交给mysql,并将文件上传到我的上传文件夹,以便它在服务器上。

我目前已经设置了所有PHP表单并将所有文本提交给mysql,我正在努力的是将文件上传到服务器并将上传的文件链接到mysql。我希望这是有道理的。

这是我到目前为止的代码:

    <!-- PHP CONNECTION -->
<?php include 'db-connect.php';

$sql="INSERT INTO invoices (companyname, email, address, price, file)
VALUES
('$_POST[companyname]','$_POST[email]','$_POST[address]','$_POST[price]','$_POST[file]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "Project created";

mysqli_close($con);
?>

如果有人能帮助我,我将不胜感激

2 个答案:

答案 0 :(得分:3)

使用input type =“file”并在php中使用$ _FILES代替$ _POST,
别忘了在形式上添加enctype =“multipart / form-data”。

创建一个文件夹并在$ filename中添加目标路径和文件名(此处为FOLDER)

<!-- your html input type must be file -->
<input type="file" name="file"/>



<?php
include 'db-connect.php';
if($_FILES["file"]["error"]>0)
{
    echo "FILE ERROR";
    die();
}
$filename = "FOLDER/".$_FILES["file"]["name"];
// move file to a folder
if (!move_uploaded_file($_FILES["file"]["tmp_name"], $filename)) { // change target path
    echo "Sorry, there was an error uploading your file.";
    die();
}
$sql="INSERT INTO invoices (companyname, email, address, price, file)
VALUES
('$_POST[companyname]','$_POST[email]','$_POST[address]','$_POST[price]','$filename')";

if (!mysqli_query($con,$sql))
{
    die('Error: ' . mysqli_error($con));
}
echo "Project created";

mysqli_close($con);
?>

答案 1 :(得分:0)

您应首先在服务器上传文件,然后将地址插入数据库,就像这个简单的上传代码一样:

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    $image= $_POST['image'];    
    $sid = "usr1";
    if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) {
        $filename = basename($_FILES['uploaded_file']['name']);
        $ext = substr($filename, strrpos($filename, '.') + 1);
        if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg") || ($ext == "png") && ($_FILES["uploaded_file"]["type"] == "image/png") || ($ext == "gif") && ($_FILES["uploaded_file"]["type"] == "image/gif") && ($_FILES["uploaded_file"]["size"] < 550000)) {
            $midname = "test" ;
            $filename2 = $sid.'_'.$midname.'.jpeg';
            $newname = dirname(__FILE__).'/avatars/'.$filename2;
            $filead = 'avatars/'.$filename2;
            if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) {
                if($image !== ""){
                    unlink($image);
                }
                    echo "<img src=\"$filead\" title=\"pic\"  /><br/>";
                echo "UPLOADED";
            } 
        } else {
            echo  "BIG FILE.";
        }
    }   
}

注意:当您要在主机上传文件时,请检查检查扩展名后面的文件标题。