Hi,
I'm having an issue on my development machine which seems isolated to this machine and can't figure it out. I have a jQuery file uploader which posts the user selected file to a php script for handling using XmlHttpRequest. The script works fine on my MacBook Pro running OSX10.6.3 with MAMP 1.9, however on my iMac with the exact same operating system and version of MAMP, with an identical server image, it fails.
I have traced the cause of the error down to the property $_SERVER["CONTENT_LENGTH"] returning 0, even though I can get the filename just fine and everything else seems to have suceeded about the request. For some reason it just won't seem to give me the actual content length. Here is the code that is causing the problem - the function in question is getSize().
class qqUploadedFileXhr {
/**
* Save the file to the specified path
* @return boolean TRUE on success
*/
function save($path) {
$input = fopen("php://input", "r");
$temp = tmpfile();
$realSize = stream_copy_to_stream($input, $temp);
fclose($input);
if ($realSize != $this->getSize()){
return false;
}
$target = fopen($path, "w");
fseek($temp, 0, SEEK_SET);
stream_copy_to_stream($temp, $target);
fclose($target);
return true;
}
function getName() {
return $_GET['qqfile'];
}
function getSize() {
if (isset($_SERVER["CONTENT_LENGTH"])){
return (int)$_SERVER["CONTENT_LENGTH"]; //*THIS* is returning 0
} else {
throw new Exception('Getting content length is not supported.');
}
}
}
Any help would be much appreciated.
Sam