PHP 将上传的图片显示到不同的页面

PHP Display uploaded image to a different page

您好,我遇到了问题。用户在 page1.php 上传了一张图片。它的文件名插入到数据库中,图像进入名为 'uploads' 的文件夹。您如何获取这些图像并将其显示给 page2.php?

第 1 页

if(isset($_FILES['filename'])){
  $errors = array();
  $file_name = $_FILES['filename']['name'];
  $file_size =$_FILES['filename']['size'];
  $file_tmp =$_FILES['filename']['tmp_name'];
  $file_type=$_FILES['filename']['type'];   
  $file_ext=strtolower(end(explode('.',$_FILES['filename']['name'])));


  $expensions= array("jpeg","jpg","png");         
  if(in_array($file_ext,$expensions)=== false){
    $errors[]="extension not allowed, please choose a JPEG or PNG file.";
   }
    if($file_size > 2097152){
    $errors[]='File size must be excately 2 MB';
   }          

   //if no error...     
   if (empty($errors)==true) {

    // upload the file...
    move_uploaded_file($file_tmp,"uploads/".$file_name);

    $servername = "localhost";
    $username = "root";
    $password = " ";
    $dbname = "admin";

    // create new record in the database
   include ("dbinfo.php");

    mysql_query("INSERT INTO payment_form (Tracking, date, ContactNo, totalsent, datesent, filename) VALUES ('$transactionNo', NOW(), '$contactNo', '$totalSent', '$dateSent', '$file_name')") ;

    header('Location: paymentform_success.php');
     }else{
      print_r($errors);
     }
 }

第 2 页有更新记录 table。我只是想让图像显示在那里的一个单元格上。 T__T 我还没有研究任何对 me.Please 帮助

有用的东西

您可以尝试这样的操作:

<?php
$query = "SELECT * FROM payment_form";
$result = mysql_query($query);
if (!$result) {
    die('SQL error');
}
echo "<table>";
while ($row = mysql_fetch_assoc($result)) {
    echo "<tr>";
    echo "<td>{$row['Tracking']}</td>";
    echo "<td>{$row['date']}</td>";
    echo "<td>{$row['ContactNo']}</td>";
    echo "<td>{$row['totalsent']}</td>";
    echo "<td>{$row['datesent']}</td>";
    echo "<td><img src='/uploads/{$row['filename']}'/></td>";
    echo "</tr>";
}
echo "</table>";
?>

首先你需要 运行 mysql_query 用“SELECT”查询,然后 运行 一个像 mysql_fetch_assoc获取每一行然后输出信息。

此外,您的原始代码存在 SQL 注入漏洞,您必须对用户提交的所有值使用 mysql_real_escape_string,例如

$transactionNo=mysql_real_escape_string($transactionNo);
$contactNo=mysql_real_escape_string($contactNo);
$totalSent=mysql_real_escape_string($totalSent);
$dateSent=mysql_real_escape_string($dateSent);
$file_name=mysql_real_escape_string($file_name);

UPD 要通过跟踪 ID 获取特定文件,您可以使用如下内容:

<?php
$Tracking = mysql_real_escape_string($_GET['Tracking']);
$query = "SELECT Tracking,filename FROM payment_form WHERE Tracking = '$Tracking'";
$result = mysql_query($query);
if (!$result) {
    die('SQL error');
}
echo "<table>";
while ($row = mysql_fetch_assoc($result)) {
    echo "<tr>";
    echo "<td>{$row['Tracking']}</td>";
    echo "<td><img src='/uploads/{$row['filename']}'/></td>";
    echo "</tr>";
}
echo "</table>";
?>

您可以按照我向您展示的方式进行操作 ,您可以使用 $_GET 或在 table 中包含一个表格并使用 $_POST。在您的验证 link 下,您回显每条记录的 ID <a href="verify.php?id=<?php echo $id; ?>">verify link</a>

在下一页您使用 $GET

if(isset($_GET['id'])){
  code here
}