Вот скрипт, который я недавно разработал и который работает хорошо.
Он проверяет размер файла: любые изображения размером более 1 МБ будут отклонены, но вы можете изменить его, если хотите загружать файлы большего или меньшего размера.
Сценарий также проверяет тип файла на случай, если кто-нибудь попытается загрузить потенциально вредоносный файл. Расширение $ используется только для разрешений изображений, но я добавил для вас файлы pdf, но будьте осторожны, файлы pdf легко могут быть заражены, в то время как изображения не так уж и велики, поэтому я надеюсь, что ваше приложение / соединение надежно защищено защищенным логином.
НаконецСценарий переименовывает файл в зависимости от времени, поэтому избегает любых конфликтов имен, которые в противном случае могли бы возникнуть после загрузки нескольких файлов.
<?php
// File settings
$target_dir = "pdf/"; // Make sure you get this folder location correct, currently it is http://www.yourwebsite.com/pdf
$UploadOk = true;
$extension = array("jpeg","jpg","png","gif","pdf");
$bytes = 1024; // Change to 2048 for 2Mb or 4096 for 4Mb etc.
$KB = 1024; // Change to 2048 for 2Mb or 4096 for 4Mb etc.
$totalBytes = $bytes * $KB;
// Grab file
if (isset($_FILES['upload']['name'])) {
$total_files = count($_FILES['upload']['name']);
// Check file size
if($_FILES["upload"]["size"] > $totalBytes) {
$UploadOk = false;
echo "<script>alert('Error: File must be less than 1mb!')</script>"; // Change file size warning for larger files
echo "<script>window.history.back();</script>";
}
// Check file extension
$ext = strtolower(pathinfo($_FILES["upload"]["name"], PATHINFO_EXTENSION));
if(in_array($ext, $extension) == false) {
$UploadOk = false;
echo "<script>alert('Error: Images only!')</script>";
echo "<script>window.history.back();</script>";
}
// If checks passed, rename file and upload to directory
if ($UploadOk == true) {
$time = preg_replace('/(0)\.(\d+) (\d+)/', '$3$1$2', microtime());
$dot = ".";
$new_filename = $time.$dot.$ext;
move_uploaded_file($_FILES['upload']['tmp_name'], $target_dir . $new_filename);
}
}
?>
Если вы все еще не можете загрузить файл, несмотря на правильное расположение каталога,как уже упоминалось, проверьте разрешения владельца для рассматриваемой папки. Вы можете сделать это, перейдя в папку на своем веб-сайте с помощью программы FTP или через cPanel и щелкнув правой кнопкой мыши по соответствующей папке, чтобы проверить разрешения, 755 в порядке и разрешит загрузку.
Я бы предложил добавить этифайлы в таблицу MYSQL, чтобы на них можно было ссылаться и получать.