PHP文件上传类实例:生成缩略图与水印

0 下载量 183 浏览量 更新于2024-09-02 收藏 62KB PDF 举报
本文档详细介绍了如何在PHP中创建一个可生成缩略图的文件上传类,以实现用户上传文件时自动处理缩略图功能。该类不仅提供了文件上传的基本操作,还包含对图片进行预处理的功能,如设定缩略图尺寸、添加水印等,从而增强了用户体验和文件管理效率。 首先,我们来看类文件的结构和调用方法。在PHP中,`upload` 类定义了以下关键属性: 1. `$dir`:存储上传文件的物理路径,用于存放用户上传的原始文件。 2. `$time`:自定义文件上传时间,可能用于记录上传时间戳或文件命名。 3. `$allow_types`:允许上传的文件类型,确保安全性和合规性。 4. `$field`:上传控件的名称,通常与表单中的文件输入字段关联。 5. `$maxsize`:限制上传文件的最大大小,以防止过大文件占用存储空间。 6. `$thumb_width` 和 `$thumb_height`:设置生成缩略图的宽度和高度,用于裁剪原图。 7. `$watermark_file`:水印图片的路径,用于在上传的图片上添加标记。 8. `$watermark_pos`:水印的位置,可以是相对图片的百分比坐标。 9. `$watermark_trans`:水印的透明度,调整水印与背景的融合程度。 类的构造函数接收参数,以便初始化这些属性。在实际使用中,如需上传文件并生成缩略图,可以通过以下步骤调用: ```php <?php if ($_GET['action'] == 'save') { $up = new upload(); // 设置文件保存路径和日期格式 $up->set_dir(dirname(__FILE__).'/upload/', '{y}/{m}'); // 设置生成缩略图的尺寸 $up->set_thumb(100, 80); // 设置水印图片、位置和透明度 $up->set_watermark(dirname(__FILE__).'/jblog/images/watermark.png', 6, 90); // 执行文件上传和缩略图生成 $fs = $up->execute(); // 返回上传结果 var_dump($fs); // 输出详细信息以便调试 } ?> ``` 接下来,在HTML页面上,创建一个表单供用户上传文件,包括两个文件输入控件和一个提交按钮: ```html <form name="upload" method="post" action="?action=save" enctype="multipart/form-data" style="margin:0;"> <input type="file" name="attach[]" /> <input type="file" name="attach[]" /> <input type="submit" name="submit" value="上传" /> </form> ``` 当用户点击"上传"按钮,表单数据将发送到服务器,通过 `upload` 类进行处理。在服务器端,文件被存储到指定目录,并根据配置生成缩略图。此实例提供了创建功能强大且易于使用的文件上传类的基础,适合于任何需要对上传文件进行预处理的PHP应用项目。