zero-perfoliate
zero-perfoliate

Author Topic: Help Request - Files too large  (Read 267 times)

Offline jamiet147

  • New PHP Members
  • Posts: 2
  • Karma: +0/-0
Help Request - Files too large
« on: May 10, 2010, 03:40:55 PM »
Evening all,

I have a simple form for people to upload their pictures from a wedding but only photos from mobiles (or extremely small files) are being uploaded, everything else is getting a error back (from upload.processor.php) about the file being too big.

This form was originally from http://www.webdeveloper.com/forum/showthread.php?t=101466 but I have tweaked it a bit... (so most likely me at fault)




Code: [Select]






<?php 

// filename: upload.form.php 

// first let's set some variables 

// make a note of the current working directory relative to root. 
$directory_self str_replace(basename($_SERVER['PHP_SELF']), ''$_SERVER['PHP_SELF']); 

// make a note of the location of the upload handler script 
$uploadHandler 'http://' $_SERVER['HTTP_HOST'] . $directory_self 'upload.processor.php'

// set a max file size for the html upload form 
$max_file_size 7500000000000000// size in bytes 

// now echo the html page 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    
        <link rel="stylesheet" type="text/css" href="stylesheet.css">
        
        <title>Upload form</title>
    
    <style type="text/css">
<!--
body {
background-color: #f3f2e5;
}
body,td,th {
font-family: Arial;
}
-->
</style></head>
    
    <body>
    
    <form id="Upload" action="<?php echo $uploadHandler ?>" enctype="multipart/form-data" method="post">
    

        
<p>
            <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size ?>">
      </p>
        
        <p>
            <label for="file">Picture to upload:</label>
            <input id="file" type="file" name="file">
            <br>

</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>
            
            <input id="submit" type="submit" name="submit" value="Upload">
        </p>
    
    </form>
    
    
    
</body>

</html>







Code: [Select]

<?php 

// filename: upload.processor.php 

// first let's set some variables 

// make a note of the current working directory, relative to root. 
$directory_self str_replace(basename($_SERVER['PHP_SELF']), ''$_SERVER['PHP_SELF']); 

// make a note of the directory that will recieve the uploaded file 
$uploadsDirectory $_SERVER['DOCUMENT_ROOT'] . $directory_self 'uploaded_files/'

// make a note of the location of the upload form in case we need it 
$uploadForm 'http://' $_SERVER['HTTP_HOST'] . $directory_self 'upload.form.php'

// make a note of the location of the success page 
$uploadSuccess 'http://' $_SERVER['HTTP_HOST'] . $directory_self 'upload.success.php'

// fieldname used within the file <input> of the HTML form 
$fieldname 'file'
$now=$_SERVER['REMOTE_ADDR'];

// Now let's deal with the upload 

// possible PHP upload errors 
$errors = array(=> 'The file is too large to be uploaded'
                
=> 'html form max file size exceeded'
                
=> 'file upload was only partial'
                
=> 'no file was attached'); 

// check the upload form was actually submitted else print the form 
isset($_POST['submit']) 
    or 
error('the upload form is needed'$uploadForm); 

// check for PHP's built-in uploading errors 
($_FILES[$fieldname]['error'] == 0
    or 
error($errors[$_FILES[$fieldname]['error']], $uploadForm); 
     
// check that the file we are working on really was the subject of an HTTP upload 
@is_uploaded_file($_FILES[$fieldname]['tmp_name']) 
    or 
error('not an HTTP upload'$uploadForm); 
     
// validation... since this is an image upload script we should run a check   
// to make sure the uploaded file is in fact an image. Here is a simple check: 
// getimagesize() returns false if the file tested is not an image. 
@getimagesize($_FILES[$fieldname]['tmp_name']) 
    or 
error('only image uploads are allowed'$uploadForm); 
     
// make a unique filename for the uploaded file and check it is not already 
// taken... if it is already taken keep trying until we find a vacant one 
// sample filename: 1140732936-filename.jpg 

while(file_exists($uploadFilename $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name'])) 

    
$now++; 


// now let's move the file to its final location and allocate the new filename to it 
@move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename
    or 
error('receiving directory insuffiecient permission'$uploadForm); 
     
// If you got this far, everything has worked and the file has been successfully saved. 
// We are now going to redirect the client to a success page. 
header('Location: ' $uploadSuccess); 

// The following function is an error handler which is used 
// to output an HTML error page if the file upload fails 
function error($error$location$seconds 500

    
header("Refresh: $seconds; URL=\"$location\""); 
    echo 
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'."\n"
    
'"http://www.w3.org/TR/html4/strict.dtd">'."\n\n"
    
'<html lang="en">'."\n"
    
'    <head>'."\n"
    
'        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">'."\n\n"
    
'        <link rel="stylesheet" type="text/css" href="stylesheet.css">'."\n\n"
'     <body bgcolor="f3f2e5">'."\n\n".
'     <font size="2" face="Arial">'."\n\n".
    
'    <title>Upload error</title>'."\n\n"
    
'    </head>'."\n\n"
    
'    <body>'."\n\n"
    
'    <div id="Upload">'."\n\n"
    
'        <h1>Upload failure</h1>'."\n\n"
    
'        <p>An error has occured: '."\n\n"
    
'        <span class="red">' $error '...</span>'."\n\n"
    
'         Please try again</p>'."\n\n"
    
'       <form><input type="button" value="Back" onclick="history.go(-1);return false;" /></form>'."\n\n".  
    
'     </div>'."\n\n"
    
'</html>'
    exit; 
// end error handler 

?>











Code: [Select]

<?php 

// filename: upload.success.php 

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        
        <link rel="stylesheet" type="text/css" href="stylesheet.css">
        
        <title>Successful upload</title>
    
    <style type="text/css">
<!--
body {
background-color: #f3f2e5;
}
body,td,th {
font-family: Arial;
}
-->
</style></head>
    
    <body>











    
        <div id="Upload">
            <h1>File uploaded</h1>
            <p>Your photo upload was successful....
        














</p>
        </div>
    


<FORM METHOD="LINK" ACTION="upload.form.php">
<INPUT TYPE="submit" VALUE="Upload More"></FORM><form><input type="button" value="Close This Window" onClick="window.close()">
</form>




    </body>

</html>




I have changed  
Quote
// set a max file size for the html upload form
$max_file_size = 7500000000000000; // size in bytes
 to stupidly large values but still no luck....


Any help would be hugely appreciated!!

Thanks
Jamie  


Offline Sergey Popov

  • PHP Helpers
  • ***
  • Posts: 31
  • Karma: +0/-0
    • Freelance PHP Developer
Re: Help Request - Files too large
« Reply #1 on: May 12, 2010, 12:36:16 AM »
Jamie, it is likely you need to adjust upload_max_filesize in the php.ini
If you have no access to php.ini on your hosting, you can try modifying this parameter in .htaccess
Refer to php documentation or PHP Help forum for more info and for answers to your questions

Offline jamiet147

  • New PHP Members
  • Posts: 2
  • Karma: +0/-0
Re: Help Request - Files too large
« Reply #2 on: May 14, 2010, 01:26:29 PM »
THANK YOU!!!   :D

Adding this to the .htaccess file sorted it
Code: [Select]
php_value upload_max_filesize 8M
php_value post_max_size       8M


 

zero-perfoliate