簡體   English   中英

PHP bot分配上傳路徑

[英]PHP bot assigning upload path

我遇到的問題是我的文件上傳路徑沒有分配到正確的文件夾。 它實際上修改了文件路徑到正在上載的文件的文件名。 奇怪吧? 這是我正在處理的代碼......

<?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.';
?> 

這是上傳后文件的樣子,

videoHello.png

加上它不會將文件上傳到我想要的目錄,位於/ video

當你寫$upload_path . $filename $upload_path . $filename你只是連接兩個字符串,這確實導致videoHello.png ;

您應該連接系統的目錄分隔符(在基於Unix的系統上它是/

$upload_path . '/' . $filename

或者將分隔符構建到字符串$upload_path

$upload_path = 'video/';

雖然我最后的建議是使用像這樣的絕對路徑:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM