Di recente mi sono imbattuto in un metodo ingegnoso per accedere al file system e recuperare informazioni preziose, come l'esistenza di file e cartelle o il loro contenuto. Questo può essere molto utile come alternativa alla funzione PHP ` file_exists` , poiché le informazioni sull'esistenza dei file possono essere utilizzate nelle query per ulteriori funzioni di ordinamento e aggregazione.
A condizione che l'utente del database associato abbia i privilegi FILE , è possibile utilizzare il comando
SELECT LOAD_FILE(*PFAD ZUR DATEI*)
Durante la query non solo controlla se un file esiste, ma leggi anche il suo contenuto.
Su sistemi Windows va notato che i backslash devono essere contrassegnati di conseguenza nel percorso del file (esempio: C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts). Anche l'aspetto della sicurezza non dovrebbe essere completamente ignorato, poiché quando viene concesso il privilegio FILE, l'accesso al database significa automaticamente l'accesso al resto del file system.
Per garantire che non vengano restituiti solo valori NULL, è necessario assicurarsi che l'utente che esegue MySQL disponga dei diritti di lettura.
Per accedere a file di grandi dimensioni, è necessario aumentare la proprietà globale "max_allowed_packet", che è impostata su 1 MB.
mysql -u... -p... set global max_allowed_packet = 1024 * 1024 * 512; exit;
È ora possibile (dopo aver riavviato il server) accedere a file di dimensioni fino a 512 MB.