diff --git a/core/includes/file.inc b/core/includes/file.inc
index 3fcb38a..ff8e730 100644
--- a/core/includes/file.inc
+++ b/core/includes/file.inc
@@ -14,6 +14,7 @@
 use Drupal\Core\Site\Settings;
 use Drupal\Core\StreamWrapper\PublicStream;
 use Drupal\Core\StreamWrapper\PrivateStream;
+use Drupal\Core\StreamWrapper\StreamWrapperInterface;
 
 /**
  * Default mode for new directories. See drupal_chmod().
@@ -230,7 +231,9 @@ function file_create_url($uri) {
   }
   else {
     // Attempt to return an external URL using the appropriate wrapper.
-    if ($wrapper = \Drupal::service('stream_wrapper_manager')->getViaUri($uri)) {
+    /** @var \Drupal\Core\StreamWrapper\StreamWrapperInterface|false $wrapper */
+    $wrapper = \Drupal::service('stream_wrapper_manager')->getViaUri($uri);
+    if ($wrapper && ($wrapper->getType() & StreamWrapperInterface::VISIBLE)) {
       return $wrapper->getExternalUrl();
     }
     else {
diff --git a/core/lib/Drupal/Core/StreamWrapper/TemporaryStream.php b/core/lib/Drupal/Core/StreamWrapper/TemporaryStream.php
index 830fb93..50e750c 100644
--- a/core/lib/Drupal/Core/StreamWrapper/TemporaryStream.php
+++ b/core/lib/Drupal/Core/StreamWrapper/TemporaryStream.php
@@ -16,7 +16,7 @@ class TemporaryStream extends LocalStream {
    * {@inheritdoc}
    */
   public static function getType() {
-    return StreamWrapperInterface::LOCAL_HIDDEN;
+    return StreamWrapperInterface::LOCAL_NORMAL;
   }
 
   /**
