1

言語:PHP / Colin Verotによるクラスアップロード
の使用 概要:複数のアップロード

以下のコードはすでにファイルを正常にアップロードしています、それは動作します...
問題:ファイル名拡張子を取得する方法を理解するのに問題があります。
(以下のコメントで、問題のある領域がどこにあるかを指定しました...)

// 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

うまくいけば、誰かがそれを指摘することができます。お手数をおかけしますが、よろしくお願いいたします。

4

2 に答える 2

1
$ext=array_pop(explode('.', $imagename));
于 2012-06-24T16:41:57.477 に答える
0

探している関数はpathinfo()です。

$pathdata = pathinfo($filename);
$extension = $pathdata['extension'];
于 2012-06-24T16:52:38.137 に答える