tags:

views:

119

answers:

3

Hi,

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.

Any advice appreciated.

Thanks.

A: 

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.

Helgi Hrafn Gunnarsson
Okay, fine, I'll just not post when I know the answer is bad news!
Helgi Hrafn Gunnarsson
+2  A: 

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.

Marek Karbarz
Doh, I was doing this all along, but the HTML was nothing that would be visible on the page. I'm using chrome, so when I clicked view source, it showed me a re-loaded version of the page, where the text file had not been loaded:)
Dan
A: 

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 http://us2.php.net/manual/en/features.file-upload.php

MANCHUCK