ホームページ  >  記事  >  バックエンド開発  >  PHPによるファイルのアップロードと再帰的ディレクトリの作成の例

PHPによるファイルのアップロードと再帰的ディレクトリの作成の例

WBOY
WBOYオリジナル
2016-07-25 08:57:34893ブラウズ
  1. /**

  2. * ファイルをアップロードする 再帰的なディレクトリを作成する
  3. * 編集: bbs.it-home.org
  4. */
  5. $uid=$_REQUEST['uid'];
  6. $avatar = 'D:/www/discuz/uc_server/data /avatar/'.get_avatar($uid, $size, $type);
  7. $dir=dirname($avatar);

  8. //ディレクトリが正常に作成されたら、一時ファイルを移動します

  9. if(mkdirs ($dir)){
  10. if($_FILES["pic"]["error"] >= 0){
  11. if(move_uploaded_file($_FILES['pic']['tmp_name'],$avatar) )){
  12. $errorcode=1;
  13. }else{
  14. $errorcode=0;
  15. $errormsg="ファイルの移動に失敗しました";
  16. }
  17. }else{
  18. $errorcode=0;
  19. $errormsg=$_FILES['pic '][ 'error'];
  20. }
  21. }
  22. $back=array("errorcode"=>$errorcode,'errormsg'=>$errormsg);
  23. echo json_encode($back);

  24. < p>//画像を保存するパスを返す
  25. function get_avatar($uid, $size = 'middle', $type = '') {
  26. $size = in_array($size, array(' big', 'middle', 'small')) ? $size : 'middle';
  27. $uid = abs(intval($uid));
  28. $uid = sprintf("%09d", $uid);
  29. $ dir1 = substr($uid, 0, 3);
  30. $dir2 = substr($uid, 3, 2);
  31. $dir3 = substr($uid, 5, 2);
  32. $typeadd = $type == 'real ' ? '_real' : ' ';
  33. $dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).$typeadd."_avatar_$size.jpg ";
  34. }
  35. // ディレクトリを再帰的に作成します。渡された $dir が絶対パスでない場合、このメソッドが実行されるディレクトリと同じレベルになります。

  36. function mkdirs($dir){
  37. if(!is_dir($dir)){
  38. if(!mkdirs(dirname($dir))){
  39. return false;
  40. }
  41. if(!mkdir($dir,0777)){
  42. return false;
  43. }
  44. }
  45. return true;
  46. }
  47. ?> ;

コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。