2012-06-24 113 views
1

語言:PHP /使用Class Upload by Colin Verot
關於:多上傳檢索文件擴展名多個上傳的文件(類上傳,PHP)

下面已經上傳精細,它的工作文件中的代碼...
問題:我無法弄清如何獲取文件名擴展名
(在下面留言,我指定我的地方問題的區域是......)

// CONNECTION TO DATABASE HERE... 

// INCLUDE UPLOAD CLASS LIBRARY 
include (dirname(__FILE__).'/lib/class.upload.php'); 

$files = array(); 
foreach ($_FILES['fileupload'] as $k => $l) 
{ 
    foreach ($l as $i => $v) 
    { 
     if (!array_key_exists($i, $files)) 
     $files[$i] = array(); 
     $files[$i][$k] = $v; 
     $imagename = $_FILES['fileupload']['name']; 
    } 
} 

foreach ($files as $file) { 

      // THIS IS MY PROBLEM AREA, GETTING FILE EXTENSION 
      $ext=strchr($imagename,"."); 

      $generate_name = rand(100,99999); 
      $generate_name_extra = rand(200,9999); 
      $filenamex = "PHOTO_".$generate_name.$generate_name_extra."_".time(); 
      $filenamex_thumb = $filenamex."_thumb"; 

      // COMPLETE FILENAME WITH EXTENSION 
      $filename = $filenamex.strtolower($ext); 
      $handle = new upload($file); 
      if ($handle->uploaded) { 
      ///// 1 //////////////////////////////////////////////////////////////////// 
      $handle->file_new_name_body = $filenamex_thumb; 
      $handle->image_resize   = true; 
      $handle->image_x    = '300'; 
      $handle->image_ratio_y  = true; 
      $handle->jpeg_quality = '100'; 

      // ABSOLUTE PATH BELOW 
      $handle->process($absoRoot.'covers/thumbs/'); 

      if ($handle->processed) { 

      // SUCCESSFUL RESPONSE 

     } 
     else 
     { 

     // FAILED RESPONSE 

     }  
    } 
} 

而且Web窗體是:

<form method="post" action="upload.php" enctype="multipart/form-data"> 
<input name="fileupload[]" id="fileupload" type="file" multiple> 

我真的非常需要的文件擴展服務文件正確在線,但我無法找到在哪裏找到它。我曾嘗試使用:$files[$i][$k]而不是$imagename在我指定的問題區域以及$file和其他可能的解決方案,但我無法找到哪個人會給我擴展名。

希望有人能指出。感謝您的時間和協助!

+0

這正是我的問題。在我上面的代碼中(我已經發表了評論),我已經顯示了我的*問題區域*,這是分割文件名+擴展名應該發生的地方。事情是,我不明白爲什麼'$ imagename'不起作用。我使用它來進行一次上傳,它可以正常工作,而使用這個實例則不會。 – Mafia

+0

在PHP中,上傳的文件並不總是上傳的文件。嘗試看到有任何錯誤http://stackoverflow.com/questions/10938408/move-uploaded-file/10938669#10938669 –

回答

1
$ext=array_pop(explode('.', $imagename)); 
+0

這不適用於我的代碼上面。圖像文件將返回爲'filnamearray'而不是預期的'filename.jpg' – Mafia

+0

** print_r($ ext)**看看$ ext包含的內容 –

+0

隨着一點點的調整,我嘗試了'$ image = $ _FILES ['fileupload ']['名稱']; $ imagename = array_pop($ image);'並且使用了'$ ext = strchr($ imagename,「。」);'它工作正常! :)這是** array_pop **做到了!非常感謝! – Mafia

0

您正在尋找的功能是pathinfo()

$pathdata = pathinfo($filename); 
$extension = $pathdata['extension'];