background image

从而进行不同的处理.
if ((cd = php_mime_get_hdr_value(header, "Content-Disposition"))) {
   char *pair=NULL;
    int end=0;

  while (isspace(*cd)) {
      ++cd;
   }

   while (*cd && (pair = php_ap_getword(&cd, ';')))
    {
       char *key=NULL, *word = pair;

       while (isspace(*cd)) {
          ++cd;
       }

       if (strchr(pair, '=')) {
            key = php_ap_getword(&pair, '=');

           if (!strcasecmp(key, "name")) {
             //获取 name 字段
              if (param) {
                    efree(param);
               }
               param = php_ap_getword_conf(&pair TSRMLS_CC);
           } else if (!strcasecmp(key, "filename")) {
              //获取 filename 字段
              if (filename) {
                 efree(filename);
                }
               filename = php_ap_getword_conf(&pair TSRMLS_CC);
            }
       }
       if (key) {
          efree(key);
     }
       efree(word);
    }

在这个过程中, PHP 会去检查普通数据中,是否有 MAX_FILE_SIZE.
 /* Normal form variable, safe to read all data into memory */
if (!filename && param) {
   unsigned int value_len;