如何使用 jQuery Checkbox 选择然后打开和/或打印存储在内容系统中的文档(获取 .pdf 文档的 html 链接)

Posted

技术标签:

【中文标题】如何使用 jQuery Checkbox 选择然后打开和/或打印存储在内容系统中的文档(获取 .pdf 文档的 html 链接)【英文标题】:How can I use jQuery Checkboxs to select and then open and/or print documents stored in a content system (html link to get .pdf doc) 【发布时间】:2012-07-09 03:54:25 【问题描述】:

我是这一切的菜鸟并且被卡住了!

我有一个类似这样的表:

<tr class="req">
        <td><input name="checkbox" type="checkbox" id="Pform70" /></td>
            <td align="left" ><a     href="https://www.yadayada.com/uat088922.pdf" title="Form Title" id="Pform70" target=new>Pform70</a></td>
    <td>Required</td>
    <td>Form Title </td>
    <td>ksdjasdjf;alsdjfal; </td>

所以 - 我希望在表格上方有一个按钮,单击该按钮将打开所有已检查的文档或打印已检查的文档。

我一直在寻找,靠近一点,但还不够靠近。谢谢大家!

【问题讨论】:

【参考方案1】:

您可以将选定(选中)的项目下载到一个组合的 .zip 文件中。

首先,创建一个包含文件列表的表单:

<form action="download.php" method="get">
<table>
<tr>
  <td><input type="submit" name="mysubmit" value="Download!"></td>
</tr>
<tr class="req">
  <td><input type="checkbox" name="file[0]" id="Pform70" /></td>
  <td align="left"><a href="https://www.yadayada.com/uat088922.pdf" title="Form Title" id="Pform70" target=new>Pform70</a></td>
  <td>Required</td>
  <td>Form Title</td>
  <td>ksdjasdjf;alsdjfal;</td>
</tr>
</table>
</form>

注意复选框名称是一个数组!

这里是下载.php:

if (!empty($_POST['file'])) 
    // open zip
    $zip_path = '/path/to/created/download.zip';
    $zip = new ZipArchive(); 
    if ($zip->open($zip_path, ZIPARCHIVE::CREATE) !== TRUE) 
        die ("An error occurred creating your ZIP file.");
      
    // checkbox values dont matter because only checked boxes show up in POST data
    foreach ($_POST['file'] as $key => $val) 
        // generate filename to add to zip
        $filename = '/path/to/php/file' . $key . '.php';
        $zip->addFile($filename) or die ("ERROR: Could not add the file $filename");  
    
    $zip->close();

    //===============
    // force download
    //===============
// assume you have a full path to file stored in $zip_path
if (!is_file($zip_path)) 
  die('The file appears to be invalid.');


$zip_path = str_replace('\\', '/', realpath($zip_path));
$filesize = filesize($zip_path);
$filename = substr(strrchr('/'.$zip_path, '/'), 1);
$extension = strtolower(substr(strrchr($zip_path, '.'), 1));

// use this unless you want to find the mime type based on extension
$mime = array('application/octet-stream');

header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.sprintf('%d', $filesize));
header('Expires: 0');

// check for IE only headers
if (isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))) 
  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  header('Pragma: public');
 else 
  header('Pragma: no-cache');


$handle = fopen($filepath, 'rb');
fpassthru($handle);
fclose($handle);


 // close $_POST check

您可以在 php.net 文档中阅读有关 ZipArchive 的更多信息。

【讨论】:

以上是关于如何使用 jQuery Checkbox 选择然后打开和/或打印存储在内容系统中的文档(获取 .pdf 文档的 html 链接)的主要内容,如果未能解决你的问题,请参考以下文章

用jquery修改默认的单选框radio或者复选框checkbox选择框样式

jQuery如何获取checkbox中的value值?

jquery 如何限制 checkbox的 选中个数

如何使用jquery实现gridview中checkbox(复选框)的全选功能?

点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态

如何使用 jQuery 选择 JSF 组件?