我試圖用一些形式的數據一起上傳文件一起發佈的數據。它對於小文件來說工作得很好。但是,當我試圖將數據與大文件一起提交時,它不捕獲數據。無法與大型文件上傳PHP
這是形式:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
<div class="form-group">
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-8">
<input type="text" class="form-control" name="title" required placeholder="Title">
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-8">
<input type="file" class="form-control" name="report" required>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4">
<center>
<input type="submit" name="upload_report" value="Upload" class="btn btn-primary btn_font">
</center>
</div>
</div>
</form>
PHP代碼:
if(isset($_POST["upload_report"])) {
echo $_POST['title']; // giving title index undefined
$max_report_id += 1;
$target_dir = "Reports/";
$file_title = mysqli_real_escape_string($connection,trim($_POST['title']));
$file_name = mysqli_real_escape_string($connection,trim($_FILES['report']["name"]));
//$file_size = mysqli_real_escape_string($connection,trim($_FILES['report']["size"]));
$target_file = $target_dir . basename($file_name); //basename gets filename from path
$uploadOk = 1;
$file_type = pathinfo($target_file,PATHINFO_EXTENSION);
$target_file = $target_dir . $max_report_id . "." . $file_type;
// Check if file already exists
if (file_exists($target_file)) {
//echo "Sorry, file already exists.";
$uploadOk = 0;
}
/* Check file size
if ($file_size > 5000000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
*/
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
$status_fail = true;
$fail_message = "Sorry, there was an error uploading your file.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["report"]["tmp_name"], $target_file)) {
$status_success = true;
$success_message = "The file ". $file_title. " has been uploaded.";
$query = "insert into reports(title,fname,path,platform,added_by,added_on) values ('$file_title','$file_name','$target_file','$platform','$user_id',now())";
$result = mysqli_query($connection, $query) or die($query);
}
else {
$status_fail = true;
$fail_message = "Sorry, there was an error uploading your file.";
}
}
}
我有足夠的更新max_post_size,memory_limit的,max_upload_size在php.ini文件。
旁註:http://bobby-tables.com - 瞭解更多的安全準備好的語句。 real_escape_string不足以防止SQL注入。 – Twinfriends