Hello php-general,
 I'm trying to figure out why I can't upload any file in php.

Form code
========
<form name="photoform" action="photos.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="40960">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td colspan="2" class="emphasis">Use this form to upload your new photographs. Note: 
only JPEG (.jpg) and PNG (.png) files allowed. Maximimum allowed file size is 
40KB.</td>
</tr>
<tr>
<td>Photograph: </td>
<td><input type="file" name="photo" /></td>
</tr>
<tr>
<td>Description: </td>
<td>
<textarea name="photodesc" rows="3" cols="30"><?php echo $_POST["photodesc"] 
?></textarea>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="fileupload" value="Upload" 
/></td>
</tr>
</table>
</form>

PHP code
=======
<?php
if ($_POST["fileupload"] == "Upload") {
$errormsg = "";
$photospath ="/home/freeman/upload";
$filename = $_FILES['photo']['name'];
$filetype = $_FILES['photo']['type'];
$filesize = (int) $_FILES['photo']['size'];

if ($filetype == "image/jpeg" || $filetype == "image/pjpeg" || $filetype == 
"image/png" || $filetype == "image/x-png") {
if ($filesize < 40960 && $filesize > 0) {
$storename = $uniqueid = md5 (uniqid (rand));
if ($filetype == "image/jpeg" || $filetype == "image/pjpeg") $storename .= ".jpg";
if ($filename == "image/png" || $filetype == "image/x-png") $storename .= ".png";
$desc = $_POST["photodesc"];

// Store the file in the photos folder and add record to database
if (is_uploaded_file ($_FILES['photo']['tmp_name'])) {
if (!@move_uploaded_file ($_FILES['photo']['tmp_name'], $photospath.$storename)) {
$errormsg .= " Problem uploading the file. Please try again. If the problem persists 
please email [EMAIL PROTECTED] to report the error.";
} else {
@chmod ($photospath.$storename, 0644);
$sql = "INSERT INTO hcs_photos (clientID,photoName,photoTitle,uploadTimeStamp) VALUES 
('". $_SESSION["clientID"] ."','$storename','$desc','$timestamp')";
$db->Query ($sql, $conn);
}

} else {
$errormsg .= "Possible file upload attack. Filename: ". $_FILES['photo']['name'];
}
} else {
$errormsg .= "Invalid file size. Maximum of 40KB allowed";
}
} else {
$errormsg .= "Invalid file type. Only JPEG and PNG files allowed";
}
if (strlen ($errormsg) < 5) {
header ("Location: ". $baseurl ."photos.php");
}
}
?>

When I upload a file I get
$filesize equal to 0.

In my php.ini i got the following section:
; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = "/tmp"

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
  

Please help. PHP even does not create a temp file in a temp directory.
/tmp got permission 777

I'm running Apache 2.0.43 and RedHat Linux

-- 
Best regards,
 Submission.org.ru                          mailto:[EMAIL PROTECTED]



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to