我想暫時將文件上傳到服務器,然後讀取此文件的內容並將內容插入數據庫。但是,當我運行的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