php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #10514 Uploaded file not stored in "upload_tmp_dir"
Submitted: 2001-04-26 13:24 UTC Modified: 2001-11-28 08:46 UTC
From: fhamonno at club-internet dot fr Assigned:
Status: Not a bug Package: PHP options/info functions
PHP Version: 4.0.4pl1 OS: Linux server27.promotion-web.net
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: fhamonno at club-internet dot fr
New email:
PHP Version: OS:

 

 [2001-04-26 13:24 UTC] fhamonno at club-internet dot fr
On the server, and according to phpInfo(), main PHP variables are:
Apache Version = Apache/1.3.19 
Apache Release = 10319100 
Apache API Version = 19990320 
User/Group = nobody(99)/99
Loaded Modules = mod_php4, .....

Session Support = enabled
session.auto_start = Off

upload_max_filesize = 1000000
upload_tmp_dir = ./tmp/

I'm running the script below; it's located in a directory where has been created a directory "tmp" (so the path "./tmp/" is OK) with rights set to "777" (chmod):

<HTML>
<HEAD><TITLE>Upload Test</TITLE></HEAD>
<BODY>
<?
// Test Upload
//
// La premi?re fois, "action" n'est pas renseign?
// => le formulaire est affich?
// A l'envoi du formulaire, "action" est renseign?
// => le script affiche les param?tres du fichier t?l? charg?
//    et affiche le d?but du fichier

if ( !$action ) {

// Affichage du formulaire

  echo "<form enctype=multipart/form-data action=".$PHP_SELF."
method=POST>\n";
  echo "<input type=hidden name=MAX_FILE_SIZE value=100000>\n";
  echo "Send this file: ";
  echo "<input name=userfile type=file>\n";
  echo "<input type=hidden name=action value=show_me_the_file>\n";
  echo "<input type=submit value=Send File>\n";
  echo "</form>\n";

} else {

// Affichage des param?tres du fichier t?l?charg?

  echo "<h2>Size: $userfile_size</h2>\n";
  echo "<h2>Type: $userfile_type</h2>\n";
  echo "<h2>Name: $userfile_name</h2>\n";
  echo "<h2>File: $userfile     </h2>\n";

// Listing du r?pertoire "./tmp"

  $dir='./tmp';
  $handle=opendir($dir);
  echo "<p>Pointeur de dossier: $handle\n";
  echo "<br>Fichiers de $dir:\n";
  while ($fic = readdir($handle)) {
  echo "<br>$fic\n";
  }
  closedir($handle); 
  echo "<br>\n";

// Suppression des doubles slash dans le nom de fichier

  $file=ereg_replace("//+","/",$userfile);

// Lecture et affichage du d?but du fichier

  $fd=fopen($file,"r") or die ("Unable to open uploaded file!");
  $data=fread($fd, MAX_SIZE);
  fclose($fd);
  echo "Beginning of file: ".substr($data, 0, 25);
  
}
?>
</BODY>
</HTML>
<!-------------------------------------------------------->

The variables displayed are the one expected (user's file name, type, size), the temp file has a coherent name ("./tmp/phpxxxxxx")... but upload directory "./tmp" remains empty.
There is no error generated in "error.log" during PHP recovery of uploaded file. An error occurs when the script try to access the file.

I've double-checked everything I could think of...

The problem exposed seems to be the same as the one posted with Bug id #10386.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-11-28 08:46 UTC] sander@php.net
This is what Cardinal said about this in bug #10386
---
[2001-05-07 18:58:31] cardinal@php.net

If you're expecting uploaded files to stay there, that won't happen.  Once the file has
been uploaded and the script finishes running, PHP will remove the file (Hence
'upload_tmp_dir').  In order to keep the file, you need to copy it to another location.
---
Not a bug. 
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Mon Dec 30 14:01:28 2024 UTC