Je veux réaliser ce qui suit.
<video src="file:///Users/username/folder/video.webm">
</video>
L'intention est que l'utilisateur puisse sélectionner un fichier à partir de son disque dur.
Et la raison pour ne pas télécharger est bien sûr les coûts de transmission et le quota de stockage. Il n'y aura aucune raison de sauvegarder le fichier.
C'est possible?
Il est possible de lire un fichier vidéo local.
<input type="file" accept="video/*"/>
<video controls autoplay></video>
Lorsqu'un fichier est sélectionné via l'élément input
:
input.files
FileListvideo.src
propriétéPenche-toi et regarde :)
http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/
Cela ne sera possible que si le fichier HTML est également chargé avec le protocole file
à partir du disque dur de l'utilisateur local.
Si la page HTML est servie par HTTP depuis un serveur, vous ne pouvez pas accéder aux fichiers locaux en les spécifiant dans un attribut src
avec le file://
protocole, car cela signifierait que vous pourriez accéder à n’importe quel fichier sur l’ordinateur des utilisateurs sans que celui-ci sache ce qui serait un risque énorme pour la sécurité.
Comme Dimitar Bonev l'a dit, vous pouvez accéder à un fichier si l'utilisateur le sélectionne à l'aide d'un sélecteur de fichier. Sans cette étape, tous les navigateurs l'interdisent pour de bonnes raisons. Ainsi, alors que sa réponse pourrait s'avérer utile pour beaucoup de gens, elle détache l'exigence du code de la question initiale.
Couru dans ce problème il y a un moment. Le site Web ne pouvait pas accéder au fichier vidéo sur le PC local en raison de paramètres de sécurité (compréhensibles). SEULEMENT, je pouvais contourner le problème en exécutant un serveur Web sur le PC local (server2Go) et toutes les références au fichier vidéo à partir du Web concernaient le localhost/video.mp4
<div id="videoDiv">
<video id="video" src="http://127.0.0.1:4001/videos/<?php $videoFileName?>" width="70%" controls>
</div>
<!--End videoDiv-->
Pas une solution idéale mais a fonctionné pour moi.