2017-03-07 95 views
-2

如果我不上传图片,提交表单时出现问题。 我有一个代码,将图片上传到表单并将该图片放入我的图片文件夹中,然后我使用该图片路径以PDF形式显示图片。如何提交表单而不上传图片?

if (isset($_FILES['img'])){ 

    $uploaddir = '../images/'; 
    $img1 = $uploaddir . basename($_FILES['img']['name']); 

    if (is_uploaded_file($_FILES['img']['tmp_name'])) { 
     // move the file to the desired place 
     if (move_uploaded_file($_FILES['img']['tmp_name'], $img1)) { 
      echo "File is valid, and was successfully uploaded."; 
     } else { 
      echo "Possible file upload attack!"; 
     } 
    } 
} 

后来我设置了变量$img = $img1,它以PDF格式输出上传的图片。

$pdf->Image($img,10,70,90); 

然而,如果不上传图片,我得到错误:

"Uncaught exception 'Exception' with message 'FPDF error: Unsupported image type"

我使用FPDF创建PDF文件。 在此先感谢您的帮助。附:如果你认为我可以做的更好一些的代码,我打开的建议,我只是一个初学者

回答

0

在PHP中,从全局变量$ _FILES你可以得到文件的详细信息:

  • 不对tmp_name
  • 错误
  • 大小

你的情况,你可以使用:

// Check file size is greater than 0 
if ($_FILES['size'] > 0 && !empty($_FILES['name'])) { 
    // here process FPDF to create PDF file 
    // then show successful message 
    // any other validation can include in this block 
} 
else 
{ 
    // Show error message on your website 
} 

,但你也可以检查文件类型更安全,无差错技术

+0

好的,得到了​​第一部分,但如果我想只是将表单转换为PDF文件wi这张照片?如果有图片,用PDF显示,如果没有,只需在PDF中留下空白区域? – grabnem

+0

@grabnem将img标签替换为未知标签,然后使用FPDF创建PDF,如,hi标签不会渲染为图像标签,图像将在PDF中消失 – Ananth

0

用此来检查文件是否已经上传

if (!file_exists($_FILES['img']['tmp_name']) || !is_uploaded_file($_FILES['img']['tmp_name'])) 
{ 
    echo 'No upload'; 
} 
0

您可以检查上传这样的:

if($_FILES['img']['error'] == UPLOAD_ERR_NO_FILE) { // No file was uploaded. 
    // Do something 
} 

if($_FILES['img']['error'] == UPLOAD_ERR_OK) { // There is no error, the file uploaded with success. 
    // Do something 
} 
相关问题