0

こんにちは、kohana でのファイルのアップロードとダウンロードで問題に直面しています。

my controller is like this:


class Controller_Test extends Controller
{
     public function action_display()
     {
        $type = $_FILES['file']['type'];

          switch ($type)
          {
          case 'image/gif':
             $otype='.gif';   break;
         case 'image/jpeg':
         case 'image/pjpeg':
            $otype= '.jpg';   break;
         case 'image/png':
            $otype= '.png';   break;
          case 'application/octet-stream':
              $otype='.doc';   break;
          case 'txt': $otype='.txt'; break;
          case 'application/pdf': $otype='.pdf'; break;
           }
     //rename the file
     $name = time() . '_' . mt_rand(1000,9999).$otype;
     $directory = $_SERVER['DOCUMENT_ROOT'].URL::base().'media';

      //uploading a file 
     $filename = Upload::save($_FILES['file'],  $name, $directory);

           $this->auto_render = false;
           $this->response->send_file($filename);

    }//action
}//controller

この関数ファイルを呼び出すと、正常にアップロードされました

しかし、ファイルを破損したファイルとしてダウンロードする

これを解決する方法を教えてください..

前もって感謝します。

4

2 に答える 2

0

URL::base()パス名の中に「http://...」のようなものを追加する可能性があるため、パス名の中に追加しないでください。削除URL::base()して再試行してください。

于 2012-06-08T06:59:29.853 に答える
0

まず、ここで実行できるいくつかの簡単なデバッグ チェックがあります。

無効であると仮定し$directoryます。

絶対パス定数を使用してディレクトリ パスを作成する場合。使用する代わりに$_SERVER['DOCUMENT_ROOT'].URL::base()(いずれにしても間違っています)

むしろAPPPATHorDOCROOTを使用してください。たとえば、https://github.com/kohana/kohana/blob/3.2/master/index.php#L57-74$directory = APPPATH.'media';を参照してください

于 2012-06-08T09:28:13.947 に答える