Сценарий загрузчика файлов не работает должным образом

Я пытаюсь создать сценарий загрузки файлов с PHP и MySql. Но это sript показывает мне страницу err.php (которая должна быть выполнена, когда есть какая-либо ошибка проверки ввода). Я пробовал настроить ее, но никаких шансов. следующий – мой php-скрипт

<?php //Start session session_start(); //Include database connection details require_once('default.php'); //Connect to mysql server $link = mysql_connect(DB_HOST, DB_USER, DB_PSWD); if(!$link) { die('Failed to connect to server: ' . mysql_error()); } //Select database $db = mysql_select_db(DB_NAME); if(!$db) { die("Unable to select database"); } function clean($str) { $str = @trim($str); if(get_magic_quotes_gpc()) { $str = stripslashes($str); } return mysql_real_escape_string($str); } //Function to sanitize values received from the form. Prevents SQL injection $name = clean($_POST['Name']); $toupld = ($_POST['file']); $source = clean($_POST['type']); $Desc = clean($_POST['Desc']); $By = clean($_POST['By']); $For = clean($_POST['For']); if($name == '') { $errmsg_arr[] = 'Name missing'; $errflag = true; } if($toupld == '') { $errmsg_arr[] = 'Path missing'; $errflag = true; } if($source == '') { $errmsg_arr[] = 'Type missing'; $errflag = true; } if($Desc == '') { $errmsg_arr[] = 'Description missing'; $errflag = true; } if($By == '') { $errmsg_arr[] = 'By missing'; $errflag = true; } if($For == '') { $errmsg_arr[] = 'For missing'; $errflag = true; } function findexts ($fname) { $fname = strtolower($fname) ; $extensions = split("[/\\.]", $fname) ; $n = count($extensions)-1; $extensions = $extensions[$n]; } $target_path="../notice/"; if($errflag) { $_SESSION['ERRMSG_ARR'] = $errmsg_arr; session_write_close(); header("location: ../err.php"); exit(); } if($_FILES['file']['error']==0){ if(($_FILES['file']['size']<1000000)&&($_FILES['file']['type']=="application/msword")||($_FILES['file']['type']=="application/pdf")){ $ext=findtext($_FILES['file']['name']); $random=rand(0,5); $random2=$random."."; $target=$target.$random2.$ext; if(move_uploaded_file($_FILES['file']['tmp_name'],$target)){ $qry="INSERT INTO PALMSIS.Notice(NoticeID,Name,Date,Timestamp,Type,Descr,By,For) VALUES('$random','$name',NOW(),NOW(),'$source','$Desc','$By','$For')"; $result=@mysql_query($qry); if($result){ header("location:./noticeupld.php"); exit(); } else{ die("query Failed"); } } else{ header("location:./success.php"); } } else{ header("location:./noproper.php"); } } else{ header("location:./error.php"); }?> 

Solutions Collecting From Web of "Сценарий загрузчика файлов не работает должным образом"

Я бы начал с просто загрузки файла и посмотреть, работает ли это … затем добавьте в свои другие части и посмотрите, где начинается проблема. Этот код предполагает, что у вас есть форма, в которой есть текстовое поле с именем «имя_файла», где вы указываете, что вы хотите, чтобы файл вызывался при его перемещении на сервер, а также в поле файла, которое является вашим файлом. Не забывайте, что ваша форма должна быть многочастной. Это то, что люди часто забывают и являются причиной больших неприятностей.

 $fileName = $_REQUEST[ 'file_name' ]; $folder = "./"; if ( move_uploaded_file( $_FILES[ 'file' ][ 'tmp_name' ], $folder . $fileName ) ) { echo "SUCCESS:" . $folder.$fileName . " has been saved"; } else{ echo "FAIL:"; } 

Все, что я могу придумать, это то, что файлы на этом должны быть под 1 МБ, что легко для PpF с графикой, чтобы превзойти … Я бы начал с некоторых основных методов устранения неполадок.

например:

 if($_FILES['file']['error']==0){ $flag = $flag+1; echo 'No errors reported on file upload<br>'; } if($_FILES['file']['size']<1000000){ $flag = $flag+1; echo 'Size is confirmed under 1mb<br>'; } if(($_FILES['file']['type']=="application/msword")||($_FILES['file']['type']=="application/pdf")){ $flag = $flag+1; echo 'Correct Filetype confirmed<br>'; } 

Таким образом, вы знаете, какие из них проходят проверки.

Удачи!

Вам, вероятно, не нужно, но было бы хорошей практикой инициализировать $errflag для false и $errmsg_arr для пустого массива.