#10307 [Opn]: PHP refusing to get temporary file name from an HTTP PUT request.

From: Date: Mon, 26 Aug 2002 00:14:12 +0000
Subject: #10307 [Opn]: PHP refusing to get temporary file name from an HTTP PUT request.
References: 1  Groups: php.bugs php.doc 
Request: Send a blank email to php-bugs+get-17812@lists.php.net to get a copy of this message
ID: 10307 Updated by: wez@php.net Reported By: excalibur@hub.org Status: Open -Bug Type: HTTP related +Bug Type: Documentation problem Operating System: freebsd 4.2 PHP Version: 4.2.1 New Comment: Making this a Documentation Problem; I can't find any code that sets PHP_UPLOADED_FILE_NAME, PHP_PUT_FILENAME or other variations, so it seems that the docs at http://www.php.net/manual/en/features.file-upload.put-method.php are just plain wrong. However, it does seem that fopen("php://stdin", "rb") will allow access to that data (but I haven't tried to verify this). Previous Comments: ------------------------------------------------------------------------ [2002-08-25 19:57:56] wez@php.net Sounds like the data is ending up coming from stdin; try the following code: $data = fopen("php://stdin", "rb"); $destfile = fopen("file_to_overwrite", "wb"); while(!feof($data)) { $chunk = fread($data, 4096); fwrite($destfile, $chunk); } fclose($destfile); fclose($data); This doesn't explain why it doesn't behave as documented, but should be enough to get you going. ------------------------------------------------------------------------ [2002-08-25 12:40:18] vvs_php@nsrd.sinp.msu.ru PUT method is used for publishing from HTML editors. But apache brings the data to the script to the stdin stream. So, PHP does not accept any data. And, also, does not set up any variable on that score. ------------------------------------------------------------------------ [2002-08-13 22:43:27] kalowsky@php.net updating version as per user comments. ------------------------------------------------------------------------ [2002-07-15 03:22:45] t.jago@its.uq.edu.au I am using FreeBSD 4.6 and mod_php4-4.2.1_2. I am using curl to send the file. curl -T /kernel http://server/test.dat Interesting thing is that the PHP code is executed and terminated BEFORE the file has completed uploading. Weird. ------------------------------------------------------------------------ [2002-07-14 19:15:57] briand@tps-eoltp.com I have duplicated this problem with PHP 4.2.1, on a Linux Mandrake system with an Apache 1.3 server. However, instead of a browser, I am using the W3C libbwww sample program, put.c (http://www.w3.org/Library/Examples/put.c). This is about as "official" a PUT command as you can get. For a server script, I have one that is about as simple as you can get. <?php #copy($PHP_UPLOADED_FILE_NAME,"uploaded_file"); print "$PHP_UPLOADED_FILE_NAME"; ?> I've tried many variations, printing out $_POST and $_FILES, and other variables, all with the same empty results. Any new ideas? ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/10307 -- Edit this bug report at http://bugs.php.net/?id=10307&edit=1

« previous php.bugs (#17812) next »