connection reset when uploading large files

Posted on 2006-04-03
Last Modified: 2013-12-12

I'm having a problem with my upload handler.  If I send small files (under 1M or so), it works fine.  if I send larger files, I get the following error in Firefox:

The connection was reset.
The connection to the server was reset while the page was loading.

When using Internt Explorer, the error is simply
The Page cannot be displayed.
The page you are looking for is currently unavailable. The Web site might be experiencing technical difficulties, or you may need to adjust your browser settings

Do I have a problem with my php.ini settings?  I've tried a few adjustments but can't find the magic solution.

Any ideas?

Thanks in advance.
Question by:kennmurrah
    LVL 28

    Expert Comment

    Php has a set time out limit (default is 30 second)

    more info here


    Author Comment

    I'll try that, but the timeout occurs INSTANTLY ... so I'm not sure how that affects things.


    Author Comment

    Just tried setting max_execution_time to a ridiculously high value, but once again, the error displayed immediately.

    LVL 28

    Expert Comment

    Check your upload_max_filesize

    LVL 28

    Expert Comment


    Author Comment

    upload_max_filezie set to 200M

    post_max_size = 250M
    LVL 28

    Expert Comment

    OK! what about the script, is there any upload limit set within the upload script?


    Author Comment

    Not that I can see ... here's the complete code:

    if ($customer == "" || $contact == "" | $contact_email == "") {
    print <<< END
    <table width="500" border="0" cellspacing="3" cellpadding="3">
        <td width="65"><img border="0" src="UsseryLogo.jpg"> </td>
          <h1><font size="+3" color="#990000"><i>Oops.</i></font></h1>
    You must supply your name, your company's name and <br>
    your email address when uploading files.<p>
    Please click on the back button in your browser<br>
    or (if you have Javascript enabled) click <a href="#" onClick="history.go(-1)"></a>
    <input type=button value="HERE" onClick="history.go(-1)">
    to <br>return to the previous page.<p>
    else {
    $customer_trimmed = eregi_replace("[^[:alnum:]\.]","",$customer) ;
    $customer_shortened = substr($customer_trimmed,0,18);
    $customer_trimmed = $customer_shortened;
    $folder_name = $customer_trimmed . date("mdyHis");

    $old_umask = umask();
    mkdir('/home/upco/uploads/' . $folder_name, 0777);

    $dest_dir = '/home/upco/uploads/' . $folder_name;


    $summary_info = "You have successfully uploaded the following file(s):<br>" ;
    for ($i=0; $i<count($_FILES['userFile']['name']); $i++)
    $new_name = $_FILES['userFile']['name'][$i];
    $parsed_name = eregi_replace("[^[:alnum:]\.]","",$new_name) ;
    $dest = $dest_dir . '/' . $parsed_name;
    if (!file_exists ($dest)) {
    copy($_FILES['userFile']['tmp_name'][$i], $dest) ;  
    $changepermissions = chmod($dest, 0777);

    if ($_FILES['userFile']['size'][$i] > 0) {
    $summary_info = $summary_info . "<tr><td>" . $_FILES['userFile']['name'][$i] . "<td>" . $_FILES['userFile']['size'][$i] . " bytes<p>" ;

    $uploaded_file = $f['name'] ;
    $email_subject = "$customer has uploaded a file";
    $salesrep = $salesrep . ",";
    $email_body = "$customer\n$contact\n$contact_email\n\n$description\n$dest_dir\n\n";
    mail("$salesrep", "$email_subject", "$email_body");
    $email_subject = "Your File Has Been Received";
    $email_body = "$contact :\n\n
    Your file $uploaded_file has been received by Ussery Printing Company, and both your sales representative and customer service representative have been notified.\n\n
    If we can be of further assistance, please call us at 972-438-8344.\n
    Thank you.\n
    Ussery Printing Company
    3402 Century Circle
    Irving, TX 75062
    mail($contact_email, $email_subject, $email_body);

    print <<<END


    <p>If you need to upload more files, click <a href="index.html">here</a><br>
      to return to the Uploads Page. </p>
    <P> If you have questions, please call your Sales Representative<br>
      at 972-438-8344.

    $upload_info = "Customer: $customer\n\n
    Contact: $contact
    Contact email: $contact_email
    Salesrep: $salesrep
    $testfilename = $dest_dir . "/instructions.txt";
    $testfile = fopen($testfilename, "a+");
    $customer = $customer . "\r\n";
    $contact = $contact . "\r\n";
    fwrite($testfile, "Customer: $customer\r\n");
    fwrite($testfile, "Contact: $contact\r\n");
    fwrite($testfile, $description);
    LVL 28

    Accepted Solution

    Script seems alright.

    This is what I dug up from Firefox

    The connection was reset
    The connection to the server at %address was reset while the page was loading.

    The site could be temporarily unavailable or too busy. Try again in a few moments.
    If you are unable to load any addresses, check the computer's network connection.
    If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.

    You might want to investigate some more on this.


    Featured Post

    Better Security Awareness With Threat Intelligence

    See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

    Join & Write a Comment

    Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this.Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it is …
    Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
    The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
    The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

    745 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    16 Experts available now in Live!

    Get 1:1 Help Now