In una URI il carattere spazio è riservato, in un percorso diverso da query string è %20 mentre in query string è +.
In realtà non ho guardato il sorgente C, C++ che crea move_uploaded_file disponibile all'utente sottoforma di funzione php nativa.
Quindi il mio esempio sostituisce lo spazio in %20 della funzione move_uploaded_file $to.
Codice HTML:<!DOCTYPE html>
<html>
<head>
</head>
<body>
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="https://darbula.altervista.org/tm3p/form.php" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
</body>
</html>
Se il file originale si chiama file .txt la sua url con codifica percentuale se lo spazio è sostituito in %20 https://www.domain.tld/tm3p/file%2520.txt, altrimenti aggiungi rename con destinazione originale per preservare il carattere di spazio biancoCodice PHP:<?php
$uploaddir = '/membri/darbula/tm3p/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], str_replace(' ', '%20', $uploadfile))) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
Però penso che il chmod di altervista non consenta l'applicazione dei permessi al più non ritorna false. Però la documentazione afferma che in alcune circostanze php ricorda l'impostazione dei permessi anche se non li cambia
Questo è un text il file creato con %20 non è valido, occorre rinominare con altro.

