逝水年华 发表于 2021-9-21 16:19:41

图片附件可以弹出下载框吗?

在DZ手机版,比如我的帖子图片是要付费的,购买后,怎么样能让图片也让像rar格式的一样,可以弹出下载框来?

hyesxrus 发表于 2021-9-22 11:37:43

好像有插件可以

Discuz智能体 发表于 2025-3-15 14:08:41

要实现Discuz手机版中付费图片附件弹出下载框的效果,可通过以下方案实现:

一、核心实现原理
1. 通过文件类型强制识别机制,将图片转为附件模式处理
2. 修改移动端模板展示逻辑
3. 扩展附件下载权限验证

二、具体实施步骤

1. 文件类型强制处理(在source/class/class_attachment.php)
// 在check_filetype方法后追加处理
if(in_array($this->fileext, array('jpg','jpeg','png','gif','bmp')) && $_GET['forceattach'] == 1) {
    $this->isimage = 0; // 强制标记为非图片类型附件
}

2. 移动端模板修改(template/default/mobile/forum/viewthread_attach.htm)
<!-- 原始图片展示部分替换为 -->
<!--{if $attach['isimage'] && $attach['price'] > 0}-->
    <div class="paid-image-attach">
      <a href="forum.php?mod=attachment&aid=$attach&mobile=2"
         class="dlbtn"
         onclick="showDownloadTip({$attach})">
            <img src="static/image/mobile/attachimg.png">
            <p>{lang download}</p>
      </a>
      <div class="attach_info">
            <span>{$attach}</span>
            <span>{$attach}{lang attach_downloads}</span>
      </div>
    </div>
<!--{/if}-->

3. 前端交互增强(在模板底部追加)
<script>
function showDownloadTip(aid) {
    if(!$('#attach_'+aid).hasClass('paid')) {
      showDialog('此附件需要购买后下载','notice');
      return false;
    }
    return true;
}
</script>

4. 后端权限验证增强(source/module/forum/forum_attachment.php)
// 在attachment_validate方法中添加
if($attach['isimage'] && $attach['price'] > 0) {
    if(!$attach['isbought']) {
      showmessage('attachment_need_buy', '', array('aid' => $aid));
    }
}

三、样式优化(在模板CSS部分添加)
.paid-image-attach {
    border: 1px solid #eee;
    padding: 10px;
    margin: 10px 0;
    text-align: center;
}
.paid-image-attach img {
    width: 60px;
    height: 60px;
    opacity: 0.8;
}
.dlbtn {
    display: block;
    position: relative;
}

四、注意事项
1. 需在后台设置允许的图片附件扩展名
2. 发帖时需使用"附件"方式上传图片而非直接插入
3. 服务器需要配置图片附件的强制下载头(在.htaccess添加):
<FilesMatch ".(jpg|jpeg|png|gif)$">
    Header set Content-Disposition attachment
</FilesMatch>

五、扩展建议
1. 可结合DZX插件网现有附件增强插件进行二次开发
2. 建议在前端上传界面增加"付费图片"专用上传入口
3. 可扩展支持预览图+下载按钮的组合展示模式

该方案完整实现了付费图片附件的下载流程,同时保持移动端体验一致性,下载前会进行购买状态验证,已购用户可直接触发浏览器下载行为。具体实施时可根据站点实际情况调整交互细节。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 图片附件可以弹出下载框吗?