2012-03-28 9 views
0

私はcodeignitorでPluploadを使用しています。pluploadアップロードディレクトリターゲットディレクトリ作成

私の問題は、私はサーバー上に新しいフォルダを作成することができません[私はこれが問題になると推測しています]。問題はここに

$targetDir = "/home/username/public_html/developer/user/".$current_user."/"."pages/pageName/images/"; 
来ることを、私は問題が何であるかを知らないここでは、コントローラが行く

...

function do_upload() 
    { 
        //$targetDir = ini_get("upload_tmp_dir") . DIRECTORY_SEPARATOR . "plupload"; 


        $current_user = $_REQUEST['userDEMO']; 

        $c_pagename = $_REQUEST['c_page']; 




        $targetDir = "/home/username/public_html/developer/uploads/".$current_user."/"; 


      //$cleanupTargetDir = false; // Remove old files 
      //$maxFileAge = 60 * 60; // Temp file age in seconds 

      // 5 minutes execution time 
      @set_time_limit(5 * 60); 

      // Uncomment this one to fake upload time 
      // usleep(5000); 

      // Get parameters 
      $chunk = isset($_REQUEST["chunk"]) ? $_REQUEST["chunk"] : 0; 
      $chunks = isset($_REQUEST["chunks"]) ? $_REQUEST["chunks"] : 0; 
      $fileName = isset($_REQUEST["name"]) ? $_REQUEST["name"] : ''; 

      // Clean the fileName for security reasons 
      $fileName = preg_replace('/[^\w\._]+/', '', $fileName); 

      // Make sure the fileName is unique but only if chunking is disabled 
      if ($chunks < 2 && file_exists($targetDir . DIRECTORY_SEPARATOR . $fileName)) 
       { 
        $ext = strrpos($fileName, '.'); 
        $fileName_a = substr($fileName, 0, $ext); 
        $fileName_b = substr($fileName, $ext); 

        $count = 1; 
        while (file_exists($targetDir . DIRECTORY_SEPARATOR . $fileName_a . '_' . $count . $fileName_b)) 
          $count++; 

        $fileName = $fileName_a . '_' . $count . $fileName_b; 
       } 

      // Create target dir 
      if (!file_exists($targetDir)) 
      { 
       @mkdir($targetDir,0755,true); 
      } 


      if (isset($_SERVER["HTTP_CONTENT_TYPE"])) 
        $contentType = $_SERVER["HTTP_CONTENT_TYPE"]; 

      if (isset($_SERVER["CONTENT_TYPE"])) 
        $contentType = $_SERVER["CONTENT_TYPE"]; 

      // Handle non multipart uploads older WebKit versions didn't support multipart in HTML5 
      if (strpos($contentType, "multipart") !== false) 
       { 
        if (isset($_FILES['file']['tmp_name']) && is_uploaded_file($_FILES['file']['tmp_name'])) { 
    // Open temp file 
    $out = fopen($targetDir . DIRECTORY_SEPARATOR . $fileName, $chunk == 0 ? "wb" : "ab"); 
    if ($out) 
        { 
    // Read binary input stream and append it to temp file 
    $in = fopen($_FILES['file']['tmp_name'], "rb"); 

    if ($in) { 
    while ($buff = fread($in, 4096)) 
    fwrite($out, $buff); 
    } else 
    die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}'); 
    fclose($in); 
    fclose($out); 
    @unlink($_FILES['file']['tmp_name']); 
     } 
        else 
       die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}'); 
         } 
        else 
        die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}'); 
       } 
      else 
       { 
       // Open temp file 
       $out = fopen($targetDir . DIRECTORY_SEPARATOR . $fileName, $chunk == 0 ? "wb" : "ab"); 
       if ($out) 
        { 
         // Read binary input stream and append it to temp file 
         $in = fopen("php://input", "rb"); 

         if ($in) { 
           while ($buff = fread($in, 4096)) 
             fwrite($out, $buff); 
         } else 
           die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}'); 

         fclose($in); 
         fclose($out); 
        } 
         else 
         die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}'); 
       } 
       // Return JSON-RPC response 
       die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}'); 

      } 

は、それがアップロード[いいえプログレスバーか何か]

希望に貼り付け

、ここ

// Create target dir 
      if (!file_exists($targetDir)) 
      { 
       @mkdir($targetDir,0755,true); 
      } 

EDIT: ディレクトリ構造:

--Public_html 
    -- Codeignitor_installation_files [default_one_for_showing_coming_soon_page_etc] 
    -- Developer [0755] 
    -- Codeignitor_default_files 
    -- User [0777] 
     -- Username1 [0777] 
      -- Pages [0777] 
       -- PageName1 [0777] 
       -- Images [0777] 
        -- img1.jpg 
       -- PageName2 
     -- Username2 

私はImagesフォルダにファイルをアップロードする

編集:

マイコントローラ機能は、私のサーバー上のAAのフォルダを作成することができます私はブラウザを介して関数を訪問したが、PLUPLOADで動作しない場合、私はPLUPLOADのURL設定を修正しましたが、方法はありません....

atleastにデバッグする方法はありますか?私はそのには、Flashランタイム上で動作していない私は、「ファイルをアップロード」をクリックしたときに私は何が起こっているかを見ることができないです... Flashランタイムに現在

+2

@mkdirから@を削除して、エラーログにエラーがないか確認してください。これは主に権限の問題です。あなたは親ディレクトリを777にCHMODしましたか? –

+0

@AlecSmart ahhありがとう。チェックしてください。 – Red

+0

私はチェックしましたが、動作していません。 – Red

答えて

0

午前:

私はplupload構成にHTML4にランタイムを更新します、そしてその仕事!

関連する問題