php 上传文件时,为什么当文件大于2m时,就会出现fail to write to disk
但是php.ini里面post_max_size=128M,upload_max_filesize=512M,都已经足够了,为什么会出现这样的情况呢我php上传文件是用ajaxuploadfile,进行异步,多个文件,一个一个地上传的。

解决方案 »

  1.   

    1、用phpinfo查看参数是否正确
    2、帖出客户端上传代码
      

  2.   

    什么参数啊
    上传代码是:
    <?php
    //session_start();
    ini_set('memory_limit', '512M');
    $error = "";
    $msg = "";
    $i = $_GET['i'];
    $_SESSION['optFormat'] = $_GET['optFormat'];
    $fileElementName = "fileToUpload".$i;
    if(!empty($_FILES[$fileElementName]['error']))
    {
    switch($_FILES[$fileElementName]['error'])
    { case '1':
    $error = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
    break;
    case '2':
    $error = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
    break;
    case '3':
    $error = 'The uploaded file was only partially uploaded';
    break;
    case '4':
    $error = 'No file was uploaded.';
    break;
    case '6':
    $error = 'Missing a temporary folder';
    break;
    case '7':
    $error = 'fail to write to disk';
    break;
    case '8':
    $error = 'File upload stopped by extension';
    break;
    case '999':
    default:
    $error = 'No error code avaiable';
    }
    }elseif(empty($_FILES[$fileElementName]['tmp_name']) || $_FILES[$fileElementName]['tmp_name'] == 'none')
    {
    $error = 'No file was uploaded..';
    }else 
    {
    $msg .= " File Name: " . $_FILES[$fileElementName]['name'] . ", ";
    $msg .= " File Size: " . @filesize($_FILES[$fileElementName]['tmp_name']);
    move_uploaded_file( $_FILES[$fileElementName]['tmp_name'], "upload/".$_FILES[$fileElementName]['name']  );
    // $_SESSION['fileNames'][$i] = $_FILES[$fileElementName]['name'];
    // $_SESSION['ids'][$_SESSION['num']] = $i; // $_SESSION['num'] += 1;

    }
    echo "{";
    echo "error: '" . $error . "',\n";
    echo "num: " . 2 ."\n";
    echo "}";
    ?>