2015-07-14 2 views
0

Я пытаюсь создать функцию загрузки видео php, но я не могу заставить ее работать. У меня нет ошибок, он просто не загружает файл. Я проверил, может ли это быть максимальный размер файла в phpinfo(), но это не так. Предел установлен в 64M.PHP простая функция загрузки видео

Пути должны быть правильными, я проверил все трижды. Я даже следовал за проводниками, но все равно ничего.

<form action='' method='post' enctype='multipart/form-data'> 
<?php 
if(isset($_FILES['video'])){ 
    $name = $_FILES['video']['name']; 
    $type = explode('.', $name); 
    $type = end($type); 
    $size = $_FILES['video']['size']; 
    $random_name = rand(); 
    $tmp = $_FILES['video']['tmp_name']; 

    if($type != 'mp4' && $type != 'MP4' && $type != 'MKV'){ 
     $message = "Format not supported!!"; 
    } else { 
     move_uploaded_file($tmp, 'videos/'.$name.'.'.$type); 
     $message = "Successfully uploaded!"; 
    } 
    echo "$message"; 
} 

?> 

select video: <br> 
    <input type='file' name='video' /><br> 
    <input class='btn' type='submit' value='Upload'> 
</form> 
+0

ли оговорку, содержащий 'move_uploaded_file()' выполнить? Если это так, поставьте временные 'file_exists()' проверки для источника и цели. Полагаю, вы обнаружите, что это проблема с разрешением. Загрузка выполняется, но вы перемещаете ее где-то, у веб-сервера нет разрешения на запись. – halfer

+0

Вам нужно быть более внимательным к вашим типам файлов - похоже, что файл PHP можно загрузить здесь. Если вы не отключили выполнение PHP в подпапке '/ videos', это позволит выполнить удаленное выполнение кода. – halfer

+0

Я не вижу, как это может быть проблема с разрешением. Я запускаю localhost. На данный момент меня не интересует безопасность: D Просто хочу заставить его работать. Спасибо в любом случае :) –

ответ

0

есть ошибка в этой строке,

move_uploaded_file($tmp, 'videos/'.$name.'.'.$type); 

изменение

$dotpos=strpos($name,'.'); 
move_uploaded_file($tmp, 'videos/'.substr($name,0,$dotpos).'.'.$type); 
Смежные вопросы