我想暂时将文件上传到服务器,然后读取此文件的内容并将内容插入数据库。但是,当我运行的HTML和上传文件,它显示404没有找到错误,没有上传。我找不到错误在哪里。 这里去html代码数据不是从html传递到php
<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!';
}
}
?>
你的文件输入字段被命名为'userfile',而不是'upload'(这是按钮,必须用'_ _POST'来访问) –
是你的'upload.php'和html文件在同一个目录下吗? – coderodour
@MagnusEriksson会导致404错误?我认为这只会给PHP一个错误。其实,即使它不会忽略if语句 – GrumpyCrouton