上传 PDF 文件并将文件名发送到数据库
upload PDF file and send filename to database
确定提交一个带有文件输入和文本字段的小表单
提交时我希望它上传(仅限 PDF 文件)并将文件名发送到我的 "resources" table.
资源 table 看起来像这样:
id (AUTO_INC & Primary)
title (data from text field)
filename (from uploaded file, preferably with extension aswell)
dateadded (pulled from current date() )
这是我目前的代码;
<form enctype="multipart/form-data" action="<? echo $PHP_SELF ?>" method="post" id="myform" class="basic-form">
<?php
// IF FORM SUBMIT
if (isset($_POST['submit']))
{
$title = $_POST['title'];
$dateLog = date("y-m-d"); // DATE OF ADDITION
$timeLog = date("H:i:s", time() - 3600); // TIME OF ADDITION
// target directory & Extensions
$uploads_dir = '../resource_docs/';
$allowedExts = array("pdf", "doc");
//Loop file uploads
foreach ($_FILES["upload"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["upload"]["tmp_name"][$key];
$name = $_FILES["upload"]["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
// INSERT QUERY
$sql="INSERT INTO resources (filename, title, dateadded)
VALUES ('$name', '$title', '$dateLog')";
$query = mysql_query($sql) or die("Cannot query the database.<br>" . mysql_error());
}
?>
<input type="file" name="upload" />
<input name='title' type='text' value='' placeholder='Title Here'/>
<input type="submit" name="submit" value="Upload"/>
</form>
表单提交并将除文件名外的所有内容放入数据库,它在浏览器底部显示正在上传,但我的目标目录中没有任何内容。
我是不是漏掉了一些明显的东西
我可以让它只接受我编码的 .pdf 文件吗?
您的文件路径可能不存在或无效。
使用echo语句检查循环是否执行。
示例:
foreach ($_FILES["upload"]["error"] as $key => $error) {
echo "foreach working";
if ($error == UPLOAD_ERR_OK) {
echo "entering into if";
$tmp_name = $_FILES["upload"]["tmp_name"][$key];
$name = $_FILES["upload"]["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
确定提交一个带有文件输入和文本字段的小表单
提交时我希望它上传(仅限 PDF 文件)并将文件名发送到我的 "resources" table.
资源 table 看起来像这样:
id (AUTO_INC & Primary)
title (data from text field)
filename (from uploaded file, preferably with extension aswell)
dateadded (pulled from current date() )
这是我目前的代码;
<form enctype="multipart/form-data" action="<? echo $PHP_SELF ?>" method="post" id="myform" class="basic-form">
<?php
// IF FORM SUBMIT
if (isset($_POST['submit']))
{
$title = $_POST['title'];
$dateLog = date("y-m-d"); // DATE OF ADDITION
$timeLog = date("H:i:s", time() - 3600); // TIME OF ADDITION
// target directory & Extensions
$uploads_dir = '../resource_docs/';
$allowedExts = array("pdf", "doc");
//Loop file uploads
foreach ($_FILES["upload"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["upload"]["tmp_name"][$key];
$name = $_FILES["upload"]["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
// INSERT QUERY
$sql="INSERT INTO resources (filename, title, dateadded)
VALUES ('$name', '$title', '$dateLog')";
$query = mysql_query($sql) or die("Cannot query the database.<br>" . mysql_error());
}
?>
<input type="file" name="upload" />
<input name='title' type='text' value='' placeholder='Title Here'/>
<input type="submit" name="submit" value="Upload"/>
</form>
表单提交并将除文件名外的所有内容放入数据库,它在浏览器底部显示正在上传,但我的目标目录中没有任何内容。
我是不是漏掉了一些明显的东西 我可以让它只接受我编码的 .pdf 文件吗?
您的文件路径可能不存在或无效。
使用echo语句检查循环是否执行。
示例:
foreach ($_FILES["upload"]["error"] as $key => $error) {
echo "foreach working";
if ($error == UPLOAD_ERR_OK) {
echo "entering into if";
$tmp_name = $_FILES["upload"]["tmp_name"][$key];
$name = $_FILES["upload"]["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}