简体   繁体   中英

PHP bot assigning upload path

I'm having an issue where the path of my file upload isn't being assigned to the correct folder. It actually amends the file path to the file name of the file being uploaded. Weird right? Here's the code I'm working on...

<?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 <a href="file.php?file=' . $filename . '" target="_blank" title="Your File">here</a>';
      else
         echo 'Sorry, but there was an error during the file upload. Please try again.';
?> 

Here's what the file looks like after being uploaded,

videoHello.png

plus it doesn't upload the file to the directory I want it in, located at /video

When you write $upload_path . $filename $upload_path . $filename you are only concatenating the two strings, which does indeed result in videoHello.png ;

You should either concatenate your system's directory separator (On Unix based systems it's / )

$upload_path . '/' . $filename

or build the separator into your string $upload_path

$upload_path = 'video/';

Though my final advice would be to use Absolute Paths like this:

$upload_path = dirname(__FILE__) . '/video/';

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM