Я держу это коротким. У меня есть файл, который можно загрузить на наш сервер через PHP. Теперь я хочу переименовать этот файл на основе строки запроса в URL:
https://XXX.de/QG_002a.html?tic=undefined
В этом случае я бы хотел, чтобы файл назывался "undefined".
Проблема в том, что загрузка работает, если я ввожу имя файла вручную, но не работает, если я пытаюсь получить для него строку запроса. Вот код:
$actual_link = $_SERVER['REQUEST_URI'];
$parts = parse_url($actual_link);
parse_str($parts['query'], $query);
$newfilename = $target_dir . $query['tic'];
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir .
$newfilename))
{
echo "The file has been uploaded.";
}
Я действительно много гуглил и перепробовал множество решений для получения текущего URL или получения строки запроса, например:
$_GET['tic'];
Но в моем случае ничего не работает. Может ли кто-нибудь, пожалуйста, кратко взглянуть на код? Может быть, это просто ошибка начинающих. Большое спасибо!
ПОЛНЫЙ ТЕКУЩИЙ КОД PHP
<?php
error_reporting(-1);
ini_set('display_errors', true);
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir . $_GET['tic'];)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
ТЕКУЩИЕ ОШИБКИ
VM46 uploadForm_Gallery.js:355 POST https://XXX.de/upload.php 500 (Internal Server Error)
saveToQueue @ VM46 uploadForm_Gallery.js:355
(anonymous) @ VM46 uploadForm_Gallery.js:245
dispatch @ VM44 jquery.min.js:3
q.handle @ VM44 jquery.min.js:3
JAVASCRIPT
const url = 'upload.php'
const request = new Request(url, {
method: 'POST',
body: formData
});
fetch(request)