Проблема с обновлением базы данных после загрузки файла - PullRequest
1 голос
/ 25 февраля 2011

Я пытаюсь загрузить файл и затем вставить имя файла в базу данных.

Ниже приведен мой код:

<?php
//connecting to database
session_start();
include('/applications/MAMP/htdocs/connect.php');
$u = $_SESSION['username'];


if (!empty($_FILES)) {
$file = $_FILES['Filedata'];

    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

    // $fileTypes  = str_replace('*.','',$_REQUEST['fileext']);
    // $fileTypes  = str_replace(';','|',$fileTypes);
    // $typesArray = split('\|',$fileTypes);
    // $fileParts  = pathinfo($_FILES['Filedata']['name']);

    // if (in_array($fileParts['extension'],$typesArray)) {
        // Uncomment the following line if you want to make the directory if it doesn't exist
        // mkdir(str_replace('//','/',$targetPath), 0755, true);
        $n = $file['name'];
        move_uploaded_file($tempFile,$targetFile);
        echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
        mysqli_select_db($connect,"people");
$i = "update users set filelocation = '$n' where sessionusername = '$u'";
$q = mysqli_query($connect,$i);
    // } else {
    //  echo 'Invalid file type.';
    // }
}


?>

Файл успешно загружен, но имяне обновляется в базе данных.

Пожалуйста, помогите мне.

Ответы [ 2 ]

2 голосов
/ 25 февраля 2011

$n = $file['name']; ничего не вернет, так как $ file нигде не объявлен. Вы, вероятно, хотите использовать:

$n = $_FILES['Filedata']['name'];

или что-то еще, что вы действительно хотите поместить в свою БД; -)

0 голосов
/ 25 февраля 2011

у вас есть $n = $file['name'];

это должно быть $n = $targetFile

Но прежде всего - очистите ваш код;)

Я очистил его для вас.Проверьте, работает ли это.

<?php
session_start();
include('/applications/MAMP/htdocs/connect.php');
mysqli_select_db("people");

if (!isset($_REQUEST['folder'])) $_REQUEST['folder'] = "";

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

    move_uploaded_file($tempFile,$targetFile);
    $i = "UPDATE users SET filelocation = '$targetFile' WHERE sessionusername = '{$_SESSION['username']}'";
    $q = mysqli_query($i);

    //debug
    echo "$targetFile<br/>
        $tempFile<br/>
        $i<br/>";
    echo mysqli_error();
}
else {
    echo "No file";
}
?>
...