upload.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /* 温馨提示:
  3. * 在flash的参数名upload_url中可自行定义一些参数(请求方式:GET),定义后在服务器端获取即可,比如可以应用到用户验证,文件的保存名等。
  4. * 本示例未作极致的用户体验与严谨的安全设计(如用户直接访问此页时该如何,万一客户端数据不可信时验证文件的大小、类型等),只保证正常情况下无误,请阁下注意。
  5. */
  6. header('Content-Type: text/html; charset=utf-8');
  7. $result = array();
  8. $result['success'] = false;
  9. $successNum = 0;
  10. //定义一个变量用以储存当前头像的序号
  11. $avatarNumber = 1;
  12. $i = 0;
  13. $msg = '';
  14. //上传目录
  15. $dir = "upload";
  16. //遍历所有文件域
  17. while (list($key, $val) = each($_FILES))
  18. {
  19. if ( $_FILES[$key]['error'] > 0)
  20. {
  21. $msg .= $_FILES[$key]['error'];
  22. }
  23. else
  24. {
  25. $fileName = date("YmdHis").'_'.floor(microtime() * 1000).'_'.createRandomCode(8);
  26. //处理原始图片(默认的 file 域的名称是__source,可在插件配置参数中自定义。参数名:src_field_name)
  27. //如果在插件中定义可以上传原始图片的话,可在此处理,否则可以忽略。
  28. if ($key == '__source')
  29. {
  30. //当前头像基于原图的初始化参数,用于修改头像时保证界面的视图跟保存头像时一致。帮助提升用户体验度。修改头像时设置默认加载的原图的url为此图片的url+该参数即可。
  31. $initParams = $_POST["__initParams"];
  32. $virtualPath = "$dir/php_source_$fileName.jpg";
  33. $result['sourceUrl'] = '/' . $virtualPath.$initParams;
  34. move_uploaded_file($_FILES[$key]["tmp_name"], $virtualPath);
  35. /*
  36. 可在此将 $result['sourceUrl'] 储存到数据库
  37. */
  38. $successNum++;
  39. }
  40. //处理头像图片(默认的 file 域的名称:__avatar1,2,3...,可在插件配置参数中自定义,参数名:avatar_field_names)
  41. else if (strpos($key, '__avatar') === 0)
  42. {
  43. $virtualPath = "$dir/php_avatar" . $avatarNumber . "_$fileName.jpg";
  44. $result['avatarUrls'][$i] = '/' . $virtualPath;
  45. move_uploaded_file($_FILES[$key]["tmp_name"], $virtualPath);
  46. /*
  47. 可在此将 $result['avatarUrls'][$i] 储存到数据库
  48. */
  49. $successNum++;
  50. $i++;
  51. }
  52. /*
  53. else
  54. {
  55. 如下代码在上传接口upload.php中定义了一个user=xxx的参数:
  56. var swf = new fullAvatarEditor("swf", {
  57. id: "swf",
  58. upload_url: "Upload.php?user=xxx"
  59. });
  60. 在此即可用$_POST["user"]获取xxx。
  61. }
  62. */
  63. }
  64. }
  65. $result['msg'] = $msg;
  66. if ($successNum > 0)
  67. {
  68. $result['success'] = true;
  69. }
  70. //返回图片的保存结果(返回内容为json字符串)
  71. print json_encode($result);
  72. /**************************************************************
  73. * 生成指定长度的随机码。
  74. * @param int $length 随机码的长度。
  75. * @access public
  76. **************************************************************/
  77. function createRandomCode($length)
  78. {
  79. $randomCode = "";
  80. $randomChars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  81. for ($i = 0; $i < $length; $i++)
  82. {
  83. $randomCode .= $randomChars { mt_rand(0, 35) };
  84. }
  85. return $randomCode;
  86. }
  87. ?>