≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > PHP笔记

php 文件上传函数的超详细示例

人气:917 时间:2018-09-17

这篇文章主要为大家详细介绍了php 文件上传函数的超详细示例,具有一定的参考价值,可以用来参考一下。

下面跟随四海网的小编来举个例子吧。
经测试代码如下:

/**
 * 文件上传
 *
 * 返回的数组索引
 * mime_type 文件类型
 * size      文件大小(单位KB)
 * file_path 文件路径
 * width     宽度
 * height    高度
 * 可选值(仅在上传文件是图片且系统开启缩略图时起作用)
 * thum_file   缩略图的路径
 * thum_width  缩略图宽度
 * thum_height 缩略图高度
 * thum_size   缩略图大小(单位KB)
 *
 * @param string $fileName 文件名
 * @param string $errorNum 错误码:$_FILES['error']
 * @param string $tmpFile 上传后的临时文件
 * @param string $fileSize 文件大小 KB
 * @param array $type 允许上传的文件类型
 * @param boolean $isIcon 是否为上传头像
 * @param boolean $is_thumbnail 是否生成缩略图
 * @return array 文件数据 索引
 * @author 四海网 www.q1010.com
 *
 */
function upload($fileName, $errorNum, $tmpFile, $fileSize, $type, $isIcon = false, $is_thumbnail = true) {
 if ($errorNum == 1) {
  return '100'; //文件大小超过系统限制
 } elseif ($errorNum > 1) {
  return '101'; //上传文件失败
 }
 $extension = getFileSuffix($fileName);
 if (!in_array($extension, $type)) {
  return '102'; //错误的文件类型
 }
 if ($fileSize > Option::UPLOADFILE_MAXSIZE) {
  return '103'; //文件大小超出emlog的限制
 }
 $file_info = array();
 $file_info['file_name'] = $fileName;
 $file_info['mime_type'] = get_mimetype($extension);
 $file_info['size'] = $fileSize;
 $file_info['width'] = 0;
 $file_info['height'] = 0;
 $uppath = Option::UPLOADFILE_PATH . gmdate('Ym') . '/';
 $fname = substr(md5($fileName), 0, 4) . time() . '.' . $extension;
 $attachpath = $uppath . $fname;
 $file_info['file_path'] = $attachpath;
 if (!is_dir(Option::UPLOADFILE_PATH)) {
  @umask(0);
  $ret = @mkdir(Option::UPLOADFILE_PATH, 0777);
  if ($ret === false) {
   return '104'; //创建文件上传目录失败
  }
 }
 if (!is_dir($uppath)) {
  @umask(0);
  $ret = @mkdir($uppath, 0777);
  if ($ret === false) {
   return '105'; //上传失败。文件上传目录(content/uploadfile)不可写
  }
 }
 doAction('attach_upload', $tmpFile);

 // 生成缩略图
 $thum = $uppath . 'thum-' . $fname;
 if ($is_thumbnail) {
  if ($isIcon && resizeImage($tmpFile, $thum, Option::ICON_MAX_W, Option::ICON_MAX_H)) {
   $file_info['thum_file'] = $thum;
   $file_info['thum_size'] = filesize($thum);
   $size = getimagesize($thum);
   if ($size) {
    $file_info['thum_width'] = $size[0];
    $file_info['thum_height'] = $size[1];
   }
   resizeImage($tmpFile, $uppath . 'thum52-' . $fname, 52, 52);
  } elseif (resizeImage($tmpFile, $thum, Option::IMG_MAX_W, Option::IMG_MAX_H)) {
   $file_info['thum_file'] = $thum;
   $file_info['thum_size'] = filesize($thum);
   $size = getimagesize($thum);
   if ($size) {
    $file_info['thum_width'] = $size[0];
    $file_info['thum_height'] = $size[1];
   }
  }
 }

 if (@is_uploaded_file($tmpFile)) {
  if (@!move_uploaded_file($tmpFile, $attachpath)) {
   @unlink($tmpFile);
   return '105'; //上传失败。文件上传目录(content/uploadfile)不可写
  }
  @chmod($attachpath, 0777);
 }
 
 // 如果附件是图片需要提取宽高
 if (in_array($file_info['mime_type'], array('image/jpeg', 'image/png', 'image/gif', 'image/bmp'))) {
  $size = getimagesize($file_info['file_path']);
  if ($size) {
   $file_info['width'] = $size[0];
   $file_info['height'] = $size[1];
  }
 }
 return $file_info;
}


/***   来自四海网(www.q1010.com)   ***/

本文来自:http://www.q1010.com/173/109-0.html

注:关于php 文件上传函数的超详细示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:文件上传

您可能感兴趣的文章

上一篇:php 生成一个随机字符串函数示例
下一篇:php 图片生成缩略图函数的简单示例
热门文章
  • PHP 写入WRITE编码为UTF8的文件示例
  • PHP 中文字符串截取函数示例:支持gb2312,gbk,big
  • PHP 简单留言板的制作示例
  • 解决Fatal error: Call to undefined function mb_convert_encoding() in错误问题
  • PHP语言基础(标记、注释、变量、数组、常量、函数)示例
  • php 生成迅雷链接的简单示例
  • php 获取短网址的实现方法
  • PHP 通用分页类的简单示例
  • PHP 使用文件方式导入导出整个MYSQL数据库的实现方法
  • php 获取MYSQL错误的简单示例
  • 最新文章
    • 解决PHP使用redis实现统计缓存MySQL压力的问题
    • php 简单的上传进度条的简单示例
    • php 给html中引用的js和css路径打上版本号的实现方法
    • php 实现计算年龄精准到年月日的实例
    • php+ajax无刷新分页的简单示例
    • 解决php+ajax无刷新上传图片的问题
    • 解决PHP生成HTML静态页面的问题
    • 解决PHP使用uniqid函数生成唯一ID的问题
    • 解决PHP防刷票的一些问题
    • 微信access_token的获取开发的实现方法

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。