如何使用PHP打印功能打印图像


How To Print Images with PHP print function

请帮帮我。我有一个表单,它从客户端表单的上传字段收集图片,并将图片打印到用户页面上。这在本地主机上运行得非常好,如下所示Ilamini Ayebatonye非常感谢

NAME:     Name Surname
EMAIL ADDRESS:     email@provider.com
HOME ADDRESS:     123 Random Street, FakeTown
PHONE NUMBER:     012345678911
QUALIFICATION:     I.C.T Certificate
SECTOR:     CCNA
INTEREST:     please put in your interest

请打印这张纸条,附上你的信用证和证书复印件,并在研讨会当天随附。

但问题是,当我上传网站并尝试注册时,图片不会再次显示,

我看到的是下面的

ECO9JA-CREATING JOBS IN ICT
          Backgrounds_15670_zps11bc080d.png    
NAME:     Name Surname
EMAIL ADDRESS:     email@provider.com
HOME ADDRESS:     123 Random Street, FakeTown
PHONE NUMBER:     012345678911
QUALIFICATION:     I.C.T Certificate
SECTOR:     CCNA
INTEREST:     please put in your interest

请打印这张纸条,附上你的信用证和证书复印件,并在研讨会当天随附。

感谢您注册

下面是图像变量的脚本表单上传和打印fxn如下:

可变

<?php
$file= "file.csv";
$name = $_POST['name'];
$email = $_POST['email'];
$address = $_POST['address'];
$phone = $_POST['phone'];
$qualification = $_POST['qualification'];
$sector = $_POST['sector'];
$interest = $_POST['interest'];
$image= $_POST['image'];
<input type="hidden" name="MAX_FILE_SIZE" value="500">
<P>
<br>
<input type="file" name="image" value="upload" >

在用户页面上打印此代码

<?php print"<img src='"$image'" width='"100px'" height='"100px'"'/>";?>

只需在项目中复制粘贴即可。

$contents=  file_get_contents('http://localhost/elgg_social/data/36/641483447202.jpg');
$expires = 14 * 60*60*24;
header("Content-Type: image/jpeg");
header("Content-Length: " . strlen($contents));
header("Cache-Control: public", true);
header("Pragma: public", true);
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT', true);
echo $contents;
exit;

发布图像文件的路径时,问题一定存在。我已经用一个图像"test.png"测试了下面的php,它是有效的。

<?php 
$image="test.png";
print"<img src='"$image'" width='"100px'" height='"100px'"'/>";
?>

看起来图像属性有问题,请删除"px"。它应该像这个

<?php print"<img src='"$image'" width='"100'" height='"100'"'/>";?>

基于上传照片

<input type="file" name="image" value="upload" >

它获取文件路径本身。您可以将上传的文件移动到您的文件夹中,相应的文件路径将保存在db中。

如果你上传的路径看起来像

C:'Users'Public'Pictures'Sample Pictures'Desert.jpg

如果您被张贴为$image = $post['image']

回显返回错误或空的路径

<img src="C:'Users'Public'Pictures'Sample Pictures'Desert.jpg"/>

如果有时有效,但大多数时候不起作用,因为我觉得这类问题。

谢谢。

根据我对php脚本的评论,您应该有一个类似的代码:

$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }

逐行仔细观察。您可以在以下位置设置图像上传的最大文件大小:$_FILES["file"]["size"] < 20000

此外,这将代码将确保用户正在上传图像,而不是其他内容。

最后根据您的需要和这个脚本成功上传后

 move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; 

然后你可以这样做来显示图像:

echo '<img src="upload/'.$_FILES["file"]["name"].'">';
  header('Content-Type: image/jpeg');
  print $response;