2012-03-28 3 views
0

Я использую Plupload с codeignitor.plupload загрузить каталог target dir создание

Моя проблема в том, что я не могу создать новую папку на сервере [я предполагаю, что это будет проблема].

Здесь контроллер идет ...

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"}'); 

      } 

Я не знаю, в чем проблема, он застрял на загрузку [Нет прогресс бар или что-нибудь]

надежду, что проблемы приходит сюда

$targetDir = "/home/username/public_html/developer/user/".$current_user."/"."pages/pageName/images/"; 

и здесь

// 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 папку

Edit:

Моя функция управления может создать аа папку на моем сервере если я посетил функцию через браузер, но не работал с PLUPLOAD, я исправил настройки URL в PLUPLOAD, но никак ...

atleast есть ли способ отладки? я в настоящее время во флэш выполнения ... так что я не в состоянии видеть, что происходит, когда я нажимаю «Загрузить файл»

+2

Удалите @ из @mkdir и увидите ошибку в журнале ошибок. Это проблема с разрешениями. У вас CHMODed родительский каталог до 777. –

+0

@AlecSmart ahh спасибо..у меня проверить .. – Red

+0

Я проверил .. но его не работает .. – Red

ответ

0

Это не работает на флэш Runtime:

Я обновил выполнения в HTML4 на конфигурации plupload , и его работа !!

Смежные вопросы