我是一名PHP初學者,我正嘗試將PDF上傳到我的MySQL數據庫。我試圖添加一些代碼,使其兼容pdf,但它沒有工作,所以我刪除它,我有PHP腳本,可以上傳.txt,word文檔,圖像等,但不是PDF。你建議我應該添加什麼,所以它適用於PDF。這是我的腳本。我無法上傳PDF到我的mysql數據庫
<html>
<head></head>
<body>
<form method="post" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1"
cellspacing="1" class="box">
<tr>
<td>Select a file to upload</td>
</tr>
<tr>
<td>
<input type="hidden" name="MAX_FILE_SIZE"
value="16000000">
<input name="userfile" type="file" id="userfile">
</td>
</tr>
<tr>
<td width="80"><input name="upload"
type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
</body>
</html>
<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fileType=(get_magic_quotes_gpc()==0 ? mysql_real_escape_string(
$_FILES['userfile']['type']) : mysql_real_escape_string(
stripslashes ($_FILES['userfile'])));
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
$con = mysql_connect('localhost', 'root', '') or die(mysql_error());
$db = mysql_select_db('test', $con);
if($db){
$query = "INSERT INTO upload (name, size, type, content) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
mysql_query($query) or die('Error, query failed');
mysql_close();
echo "<br>File $fileName uploaded<br>";
}else { echo "file upload failed"; }
}
?>
你在哪裏檢查文件類型?我沒有看到你的代碼。 – putvande
什麼字段類型是您的「內容」列?文本?它可能不足以存儲整個pdf內容(TEXT只能包含65,535字節的數據)。你爲什麼不把文件上傳到服務器並在數據庫中保存它的路徑? – davey
爲什麼你想要在數據庫中的文件?爲什麼不正常上傳到一個正常的目錄,並將路徑存儲在數據庫中,這是一個錯誤,我也在我的早期編程年 – Lappies