Dan
Dan

Reputation: 4140

PHP read from uploaded text file?

If I upload a text file via a form, is it possible to output its contents directly from the $_FILES variable rather than saving it onto the server first? I know this is a security risk, but it will only be run on a local machine.

Upvotes: 35

Views: 107730

Answers (3)

MANCHUCK
MANCHUCK

Reputation: 2472

Doing

file_get_contents($_FILES['uploadedfile']['tmp_name']); 

is valid however you should also check to make sure that the file was uploaded through a form and that no errors occurred during upload:

if ($_FILES['uploadedfile']['error'] == UPLOAD_ERR_OK               //checks for errors
      && is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) { //checks that file is uploaded
  echo file_get_contents($_FILES['uploadedfile']['tmp_name']); 
}

A helpful link is https://www.php.net/manual/en/features.file-upload.php

Upvotes: 82

Teekin
Teekin

Reputation: 13289

Unfortunately, no. At least not through the $_FILES variable. Sorry.

EDIT: It is always saved as the temp file in $_FILES and you'll always have to use that one for content.

Upvotes: 6

Marek Karbarz
Marek Karbarz

Reputation: 29304

The file is saved to temp directory the moment it's uploaded, but you can use $_FILES['uploadedfile']['tmp_name'] to read it without having to save in a permanent place.

Upvotes: 58

Related Questions