我有一个HTML文件上传表单,它接受一个文件并通过PHP将其提交到数据库,工作正常。代码:
<form method="post" action="confirm.php" enctype="multipart/form-data">
<label>Upload File</label>
<input type="file" name="file">
<input type="submit" name="submit" value="Preview" formtarget="_blank">
</form>
我的问题是我需要结合预览php和提交php。两者都使用$ file独立工作,但我试图让用户上传 - &gt;点击预览按钮 - &gt;预览信息 - &gt;点击提交 - &gt; info进入数据库,但上传php会说文件无效。 我使用了一些PHP代码来显示html表中的内容,以便在将信息提交到数据库之前验证信息,如下所示:
<body>
<div class="phpTableWrap">
<?php
$server = "localhost";
$user = "root";
$pw = "root";
$db = "uwsTest";
$connect = mysqli_connect($server, $user, $pw, $db);
if ($connect->connect_error) {
die("Connection failed: " . $conn->connect_error);
}else{
echo'success!';
}
if(isset($_POST['submit']))
{
ini_set('auto_detect_line_endings', true);
$file = $_FILES["file"]["tmp_name"];
$handle = fopen($file, "r");
$maxPreviewRows = PHP_INT_MAX; // this will be ~2 billion on 32-bit system, or ~9 quintillion on 64-bit system
$hasHeaderRow = true;
echo '<table>';
if ($hasHeaderRow) {
$headerRow = fgetcsv($handle);
echo '<thead><tr>';
foreach($headerRow as $value) {
echo "<th>$value</th>";
}
echo '</tr></thead>';
}
echo '<tbody>';
$rowCount = 0;
while ($row = fgetcsv($handle)) {
echo '<tr>';
foreach($row as $value) {
echo "<td>$value</td>";
}
echo '</tr>';
if (++$rowCount > $maxPreviewRows) {
break;
}
}
echo '</tbody></table>';
}
?>
</div>
有没有办法与两个PHP文件共享上传的文件,以便我可以从预览页面插入数据?
答案 0 :(得分:1)
使用预览按钮在提交之前使用javascript添加隐藏字段,例如<input type='hidden' name='action' value='preview' />
,并在PHP文件中检测到该字段:
if ($_POST['action'] == 'preview') {
// do preview stuff
}