[关闭]
@greensea 2015-08-11T07:43:18.000000Z 字数 1506 阅读 1411

游侠网站图片上传模块使用说明


图片上传类被封装成了一个名为 upimg 的 Extend,上传图片会保存在 /static/image/user 目录下。

示例代码:

在表单域中,使用 image 作为 file 域名字

  1. <input type="file" name="image" />

在 PHP 中使用下面的代码进行处理:

  1. $upimgExtend = importExtend('Upimg');
  2. /// 保存上传的图片,并更新数据库,如果成功,则在返回该图片在数据库中的唯一编号
  3. $ret = $upimgExtend->save('image');
  4. if (!$ret) {
  5. die('无法上传文件:' . $upimgExtend->getLastError());
  6. }
  7. /// 图片上传成功,使用图片编号查询图片详细信息
  8. $cond = array(
  9. 'upimg_id' => $ret
  10. );
  11. $upimg = $upimgExtend->getBy($cond);
  12. $upimg = $upimgExtend->format($upimg);
  13. echo json_encode($upimg);

在上面的代码中,$upimg 的内容是:

  1. {
  2. "upimg_id": "87",
  3. "user_id": "0",
  4. "admin_id": "2",
  5. "ctime": "1439277423",
  6. "local_name": "截图_2015-05-26_14-23-33.png",
  7. "ip": "127.0.0.1",
  8. "group_id": "0",
  9. "hash": "5f72d8cb13bafb80e52e58fcd20b4d8b",
  10. "ext": "png",
  11. "url_upyun": "//youxia-cdn.b0.upaiyun.com/user/5f/72/5f72d8cb13bafb80e52e58fcd20b4d8b.png",
  12. "url": "//youxia-cdn.b0.upaiyun.com/user/5f/72/5f72d8cb13bafb80e52e58fcd20b4d8b.png"
  13. }

我们可以直接使用其中的 url_upyun 字段来作为图片路径。

另外,可以根据实际需要,保存 upimg_id。比如,我们需要保存用户头像,那么可以在用户表中创建一个名为 userface_id 的字段,将 upimg_id 的值保存到 userface_id 字段中。在读取用户信息时,可以根据 userface_id 查询到对应的图像文件。

自动缩略图

在 upyun 的 URL 后面加上 !WxH 就可以生成缩略图,如这张图片:

https://youxia-cdn.b0.upaiyun.com/user/7a/32/d155be2809d353fd7f63a71dbcbe.jpg

原始大小是 600x450,如果我们需要一个 100x100 的缩略图,可以将地址写成这样:

https://youxia-cdn.b0.upaiyun.com/user/7a/32/d155be2809d353fd7f63a71dbcbe.jpg!100x100

如果我们只想确保宽度为 100,并保持图像比例,则可以将宽度设为 100,同时将高度设为 0,如:

https://youxia-cdn.b0.upaiyun.com/user/7a/32/d155be2809d353fd7f63a71dbcbe.jpg!100x0

同样,如果将宽度设置为 0,就可以生成一个固定高度,但宽度自适应的比例不变的缩略图。

需要注意的是,自动缩略图功能其实是我们自己实现的,而不是 upyun 提供的功能。也就是说,每生成一个缩略图,都会占用我们自己的服务器空间,所以请不要生成大量的不同大小的缩略图。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注