数据没有从html传递到php

时间:2017-08-10 15:20:47

标签: php html

我想暂时在服务器上传文件,然后读取该文件的内容并将内容插入数据库。但是当我运行html并上传文件时,它显示404找不到错误并且没有上传任何内容。我无法找到错误的位置。 这里是html代码

    

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>

<form method="POST" action="upload.php" enctype="multipart/form-data">

    <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
    <br>File to upload:
    <br>
    <input type="file" id="userfile" name="userfile" size="40">
    <p>
        <input id="upload" type="submit" name="upload" value="upload">
</form>
</body>
</html>

这里是upload.php

<?php
require_once('DBconnection.php');


ini_set('display_errors', 1);
ini_set('log_errors', 1);

if ($db -> connect_error){
    die("connection failed ".$db->connect_error);
}
else{
    echo "connection successful";
}

if(isset($_FILES['upload'])) {
    if ($_FILES['upload']['error'] == 0) {

        $fileName = $db->real_escape_string($_FILES['userfile']['name']);
        $tmpName = $db->real_escape_string($_FILES['userfile']['tmp_name']);
        $fileSize = intval($_FILES['userfile']['size']);
        $fileType = $db->real_escape_string($_FILES['userfile']['type']);

        $fp = fopen($tmpName, 'r');
        $content = fread($fp, filesize($tmpName));
        $content = addslashes($content);
        fclose($fp);

        if (!get_magic_quotes_gpc()) {
            $fileName = addslashes($fileName);
        }


        echo $fileSize;

        $ins_query = "INSERT INTO upload (filename, filesize, filetype, content ) " .
            "VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
        $que = $db->query($ins_query);

        if ($que == true)
            echo "<br>File $fileName uploaded<br>";
        else
            echo "Error: " . $ins_query . "<br>" . mysqli_error($db);
    }
    else {
        echo 'Error! A file was not sent!';
    }
}

?>

3 个答案:

答案 0 :(得分:0)

404错误是一个http错误,upload.php中的代码无法通过您的代码向您显示此类错误,请检查当您点击上传按钮时是否达到上传的确切网址。 php文件(也许html和php不在同一目录下)。

使用你所拥有的代码,如果文件没有上传,你的php脚本的结果将是“连接成功”而没有别的,也许你的错误是因为文件DBconnection.php不在同一个目录中upload.php的。

答案 1 :(得分:0)

在我看来你的上传失败了,很可能是因为一些php指令太有限了,比如post_max_size&amp; upload_max_filesize - 看看PHP upload fail (empty $_FILES)。我还会监视php.log,看看是否确实存在这样的错误。

答案 2 :(得分:0)

问题是它没有通过添加$ targetfolder = getcwd()获得我解决的确切目录位置。 &#34; / testupload /&#34 ;;而且我没有正确地从HTML接收PHP中传递的值。所以在解决了这些问题之后,我的问题就解决了。