How to prevent error: Use of $_FILES is discouraged in Magento 2?

How to prevent the use of global variable $_FILES in code?

Magento application does not directly use any PHP superglobals variable like $GLOBALS, $_SERVER, $_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, $_REQUEST.

You don’t need to directly use $_FILES in your code for file/images save. This may be lead to security vulnerabilities.

When you are using tools like GrumPHP, At your code commit time, You facing error like Use of $_FILES is discouraged in Magento 2.

Prevent of this error, You have to use an alternative way of $_FILES using Magento 2 with Magento\Framework\HTTP\PhpEnvironment\Request class.

You need to add Request.php class into the constructor as a dependency injection.

use Magento\Framework\HTTP\PhpEnvironment\Request;

class FilesAlternative
     * @var Request
    protected $request;

     * Validate constructor.
     * @param Request $request
    public function __construct(
        Request $request
    ) {
        $this->request = $request;

    public function saveImage() {
        $files = $this->request->getFiles()->toArray(); // same as $_FIELS
        if (isset($files['import_file']['name'])) {
        	//do your logic for save file

In above function, $this->request->getFiles()->toArray() gives output same as $_FILES.