diff --git a/src/wp-admin/network/settings.php b/src/wp-admin/network/settings.php
index 2a26b48ab5..64e5e4fac4 100644
--- a/src/wp-admin/network/settings.php
+++ b/src/wp-admin/network/settings.php
@@ -380,9 +380,9 @@ if ( isset( $_GET['updated'] ) ) {
 			<tr>
 				<th scope="row"><label for="upload_filetypes"><?php _e( 'Upload file types' ); ?></label></th>
 				<td>
-					<input name="upload_filetypes" type="text" id="upload_filetypes" aria-describedby="upload-filetypes-desc" class="large-text" value="<?php echo esc_attr( get_site_option( 'upload_filetypes', 'jpg jpeg png gif' ) ); ?>" size="45" />
+					<textarea name="upload_filetypes" id="upload_filetypes" aria-describedby="upload-filetypes-desc" cols="45" rows="5"><?php echo esc_attr( get_site_option( 'upload_filetypes', 'jpg jpeg png gif' ) ); ?></textarea>
 					<p class="description" id="upload-filetypes-desc">
-						<?php _e( 'Allowed file types. Separate types by spaces.' ); ?>
+						<?php _e( 'Allowed file types. Separate types by spaces or new lines.' ); ?>
 					</p>
 				</td>
 			</tr>
diff --git a/src/wp-includes/ms-functions.php b/src/wp-includes/ms-functions.php
index 0b4e453c3b..52cba9f940 100644
--- a/src/wp-includes/ms-functions.php
+++ b/src/wp-includes/ms-functions.php
@@ -1845,7 +1845,8 @@ function get_most_recent_post_of_user( $user_id ) {
  * @return array
  */
 function check_upload_mimes( $mimes ) {
-	$site_exts  = explode( ' ', get_site_option( 'upload_filetypes', 'jpg jpeg png gif' ) );
+	$site_exts  = preg_split( '/[\s]+/', get_site_option( 'upload_filetypes', 'jpg jpeg png gif' ) );
+	$site_exts  = str_replace( '.', '', strtolower( $site_exts ) );
 	$site_mimes = array();
 	foreach ( $site_exts as $ext ) {
 		foreach ( $mimes as $ext_pattern => $mime ) {
