PHPロボットのアップロードパスの割り当て

ファイルのアップロードパスが正しいフォルダに割り当てられていないという問題が発生しています。実際には、アップロードされるファイルのファイル名へのファイルパスが修正されます。奇妙な権利ですか?ここで私が取り組んでいるコードは...

<?php
      $allowed_filetypes = array('.mp4','.gif','.bmp','.png','.html','.psd','.zip','.xml','.css','.js',);
      $max_filesize = 5904288;
      $upload_path = 'video';

   $filename = $_FILES['userfile']['name'];
   $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);

   if(!in_array($ext,$allowed_filetypes))
      die('Sorry, cannot take files over blankKB.');

   if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
      die('Sorry, cannot take files over blankKB.');

   if(!is_writable($upload_path))
     die('We are very sorry, a problem is occurring with the CHMOD  of this directory');

   if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))
         echo ' Your file was uploaded successfully, view it here';
      else
         echo 'Sorry, but there was an error during the file upload. Please try again.';
?> 

アップロードした後のファイルの外観は次のとおりです。

videoHello.png

加えて、/ videoにあるディレクトリにファイルをアップロードしません

0

1 答え

$ upload_pathを書くとき。 $ filename という2つの文字列を連結しているだけなので、 videoHello.png となります。

システムのディレクトリ区切りを連結するか(Unixベースのシステムでは/

$upload_path . '/' . $filename

or build the separator into your string $upload_path

$upload_path = 'video/';

私の最終的なアドバイスは絶対パスをこのように使うことです:

$upload_path = dirname(__FILE__) . '/video/';
2
追加された
技術的には、 DIRECTORY_SEPARATOR を使用する必要があります。そうでなければ、+1。 :)
追加された 著者 deceze,
@decezeでもそれはとても醜いです! ;)
追加された 著者 Shad,
ああ、私はそれを考えなかっただろう。ありがとう、それは働いた:)
追加された 著者 user893246,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com