2011-09-08 109 views
0

您好所有我使用所謂的jQuery的上傳uploadify其具有爲您的hardrive閃光燈multipicker上傳多個文件使用JavaScript的服務器。這使得一次抓取一堆文件變得容易,而不是一次一個。我有個問題。即使您選擇了多個項目,它也會使用ajax調用相同的腳本單獨上傳文件。這將允許我在一個名爲upload的控制器中編寫一個php函數來上傳該文件。笨 - 多上傳和文件信息

我希望能夠允許用戶自己註冊的過程中所有的文件上傳。問題是,我是新的codeigniter,並希望使用文件上傳類,但據我所知,你無法找到它是什麼類型的文件,然後再進行上傳。只有事後才能知道它是否是圖像。這樣做的原因是因爲我將它們全部放在單獨的文件夾中。一個用於音樂和一個用於圖像的視頻。

我想解決這個另一種方式是創建一個單獨的上傳字段爲每種類型的上傳,只是叫differenct AJAX腳本。這實際上是我想要做的,但還有另一個問題。我知道codeigniter使用name ='userfile'來進行上傳,而我需要在頁面上有三個上傳字段,其中有不同的名稱。你可以使用代碼點火器在每頁上有多個上傳字段。

如果有人可以幫助我與此我將不勝感激。

回答

0

爲什麼不只是使用MIME類型來確定它是什麼類型的文件? Uploadify有一個問題,它沒有指定它是什麼類型的文件,因爲它使用基於Flash的上傳。

我會建議什麼是文件被上傳後,檢查MIME類型,並根據它是什麼改變目錄。

如果它只是圖像或視頻,然後是簡單的事,因爲這裏只有幾個不同的類型。

function new_mime_content_type($filename) { 

    $mime_types = array(

      'txt' => 'text/plain', 
      'htm' => 'text/html', 
      'html' => 'text/html', 
      'php' => 'text/html', 
      'css' => 'text/css', 
      'js' => 'application/javascript', 
      'json' => 'application/json', 
      'xml' => 'application/xml', 
      'swf' => 'application/x-shockwave-flash', 
      'flv' => 'video/x-flv', 

      // images 
      'png' => 'image/png', 
      'jpe' => 'image/jpeg', 
      'jpeg' => 'image/jpeg', 
      'jpg' => 'image/jpeg', 
      'gif' => 'image/gif', 
      'bmp' => 'image/bmp', 
      'ico' => 'image/vnd.microsoft.icon', 
      'tiff' => 'image/tiff', 
      'tif' => 'image/tiff', 
      'svg' => 'image/svg+xml', 
      'svgz' => 'image/svg+xml', 

      // archives 
      'zip' => 'application/zip', 
      'rar' => 'application/x-rar-compressed', 
      'exe' => 'application/x-msdownload', 
      'msi' => 'application/x-msdownload', 
      'cab' => 'application/vnd.ms-cab-compressed', 

      // audio/video 
      'mp3' => 'audio/mpeg', 
      'qt' => 'video/quicktime', 
      'mov' => 'video/quicktime', 

      // adobe 
      'pdf' => 'application/pdf', 
      'psd' => 'image/vnd.adobe.photoshop', 
      'ai' => 'application/postscript', 
      'eps' => 'application/postscript', 
      'ps' => 'application/postscript', 

      // ms office 
      'doc' => 'application/msword', 
      'rtf' => 'application/rtf', 
      'xls' => 'application/vnd.ms-excel', 
      'ppt' => 'application/vnd.ms-powerpoint', 

      // open office 
      'odt' => 'application/vnd.oasis.opendocument.text', 
      'ods' => 'application/vnd.oasis.opendocument.spreadsheet', 
    ); 

    $ext = strtolower(array_pop(explode('.',$filename))); 
    if (array_key_exists($ext, $mime_types)) { 
     return $mime_types[$ext]; 
    } 
    else { 
     return 'general/general'; 
    } 
}