public String asHeaderValue() {
        if (strVal != null) {
            return strVal;
        }

        try (TemporaryThreadLocals tempThreadLocals = TemporaryThreadLocals.acquire()) {
            final StringBuilder sb = tempThreadLocals.stringBuilder();
            sb.append(type);

            if (name != null) {
                sb.append("; name=\"");
                sb.append(name).append('\"');
            }
            if (filename != null) {
                if (charset == null || StandardCharsets.US_ASCII.equals(charset)) {
                    sb.append("; filename=\"");
                    escapeQuotationsInFilename(sb, filename);
                    sb.append('\"');
                } else {
                    sb.append("; filename*=");
                    encodeFilename(sb, filename, charset);
                }
            }
            return strVal = sb.toString();
        }
    }
Returns the header value for this content disposition as defined in RFC 6266.

@see #parse(String)
core/src/main/java/com/linecorp/armeria/common/ContentDisposition.java