我在使用代码时遇到困难。我正在尝试将文件上传到服务器文件夹并插入到SQL BLOB中。两者都不起作用。有什么建议么?

<?php mysql_connect ("host","user","pass")
    mysql_select_db("pics")

    $image= addslashes($_FILES['file']['tmp_name']);
    $name= addslashes($_FILES['file']['name']);
    $image= file_get_contents($image);
    $image= base64_encode($image);

    if (move_uploaded_file ($_FILES["file"]["tmp_name"], "http://www.website.com/uploads/".$_FILES["file"]["name"])) {
    $insert = mysql_query ("INSERT INTO pics (name,file) values ('$name','$image')");
    }
    else "error uploading query to database";

    ?>

最佳答案

首先(同意@ AMartinNo1)不要使用mysql函数,而要使用PDO。
同样(再一次与@ AMartinNo1达成一致)move_uploaded_file的第二个参数必须是服务器上文件的路径(文件系统路径)。
    

$pdo = new PDO('mysql:dbname=pics;host=host', 'user', 'pass');

$image = addslashes($_FILES['file']['tmp_name']);
$name = addslashes($_FILES['file']['name']);
$image = file_get_contents($image);
$image = base64_encode($image);

if (move_uploaded_file($_FILES['file']['tmp_name'], '/tmp/myUploadedFile')) {
    $s = $dbh->prepare('INSERT INTO pics (name, file) VALUES (:name, :file)');
    $s->bindValue(':name', $name, PDO::PARAM_STR);
    $s->bindValue(':file', $image, PDO::PARAM_STR);
    if (!$s->execute()) {
        throw new Exception($s->errorInfo());
    }
}

关于php - PHP move_uploaded_file到SQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31280273/

10-10 23:38