12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- /* 温馨提示:
- * 在flash的参数名upload_url中可自行定义一些参数(请求方式:GET),定义后在服务器端获取即可,比如可以应用到用户验证,文件的保存名等。
- * 本示例未作极致的用户体验与严谨的安全设计(如用户直接访问此页时该如何,万一客户端数据不可信时验证文件的大小、类型等),只保证正常情况下无误,请阁下注意。
- */
- header('Content-Type: text/html; charset=utf-8');
- $result = array();
- $result['success'] = false;
- $successNum = 0;
- //定义一个变量用以储存当前头像的序号
- $avatarNumber = 1;
- $i = 0;
- $msg = '';
- //上传目录
- $dir = "upload";
- //遍历所有文件域
- while (list($key, $val) = each($_FILES))
- {
- if ( $_FILES[$key]['error'] > 0)
- {
- $msg .= $_FILES[$key]['error'];
- }
- else
- {
- $fileName = date("YmdHis").'_'.floor(microtime() * 1000).'_'.createRandomCode(8);
- //处理原始图片(默认的 file 域的名称是__source,可在插件配置参数中自定义。参数名:src_field_name)
- //如果在插件中定义可以上传原始图片的话,可在此处理,否则可以忽略。
- if ($key == '__source')
- {
- //当前头像基于原图的初始化参数,用于修改头像时保证界面的视图跟保存头像时一致。帮助提升用户体验度。修改头像时设置默认加载的原图的url为此图片的url+该参数即可。
- $initParams = $_POST["__initParams"];
- $virtualPath = "$dir/php_source_$fileName.jpg";
- $result['sourceUrl'] = '/' . $virtualPath.$initParams;
- move_uploaded_file($_FILES[$key]["tmp_name"], $virtualPath);
- /*
- 可在此将 $result['sourceUrl'] 储存到数据库
- */
- $successNum++;
- }
- //处理头像图片(默认的 file 域的名称:__avatar1,2,3...,可在插件配置参数中自定义,参数名:avatar_field_names)
- else if (strpos($key, '__avatar') === 0)
- {
- $virtualPath = "$dir/php_avatar" . $avatarNumber . "_$fileName.jpg";
- $result['avatarUrls'][$i] = '/' . $virtualPath;
- move_uploaded_file($_FILES[$key]["tmp_name"], $virtualPath);
- /*
- 可在此将 $result['avatarUrls'][$i] 储存到数据库
- */
- $successNum++;
- $i++;
- }
- /*
- else
- {
- 如下代码在上传接口upload.php中定义了一个user=xxx的参数:
- var swf = new fullAvatarEditor("swf", {
- id: "swf",
- upload_url: "Upload.php?user=xxx"
- });
- 在此即可用$_POST["user"]获取xxx。
- }
- */
- }
- }
- $result['msg'] = $msg;
- if ($successNum > 0)
- {
- $result['success'] = true;
- }
- //返回图片的保存结果(返回内容为json字符串)
- print json_encode($result);
- /**************************************************************
- * 生成指定长度的随机码。
- * @param int $length 随机码的长度。
- * @access public
- **************************************************************/
- function createRandomCode($length)
- {
- $randomCode = "";
- $randomChars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- for ($i = 0; $i < $length; $i++)
- {
- $randomCode .= $randomChars { mt_rand(0, 35) };
- }
- return $randomCode;
- }
- ?>
|