On image preview, when I select a video, an empty image box is displayed on the right side of the video image preview. And when I select a picture, an empty space is displayed on the left side of the picture image preview. So both <video> tag and <img> tag are displayed together.
Here is the code of the relevant HTML part, which is inside a form tag:
<form method="post" enctype="multipart/form-data">
<label class="input-group-prepend" for="image_name">
<i class="fa fa-camera" data-toggle="tooltip" title="Attach a photo or video"></i>
<video class="image_Preview"></video>
<img class="image_Preview">
</label>
<input id="image_name" name="image_name" class="file" type="file" data-count="0" style="display: none;">
</form>
Here is the relevant jQuery part:
$(document).on('click change', '.file, .submit', function() {
if ($(this).is('.file')) {
$(this).closest('.input-group').find('.image_Preview').attr('src', window.URL.createObjectURL(this.files[0]))
.css({"width":"250px","height":"150px"});
I want either <video> tag or <img> tag to be displayed, but not both.
Here I created the following code. First, I take the file extension from input tag to see whether it is jpg or mp4. If the file extension is jpg it goes to if condition, and if it is mp4 it goes to else condition. The problem is that I cannot make var ext global. It is local no matter how much I try to make it global.
<form method="post" enctype="multipart/form-data">
<label class="input-group-prepend" for="image_name">
<i class="fa fa-camera" data-toggle="tooltip" title="Attach a photo or video"></i>
<script>
function getFile(filePath) {
return filePath.substr(filePath.lastIndexOf('\\') + 1).split('.')[0];
}
var ext;
function getoutput() {
outputfile.value = getFile(image_name.value);
ext = extension.value = image_name.value.split('.')[1];
console.log(ext);
}
getoutput();
console.log(ext);
if (ext == 'jpg') {
document.write('<img class="image_Preview">');
document.write('<h1>It worked for jpg!</h1>');
} else if (ext == 'mp4') {
document.write('<video class="image_Preview"></video>');
document.write('<h1>It worked for mp4!</h1>');
}
</script>
</label>
<input id="image_name" name="image_name" class="file" type="file" data-count="0" style="display: none;" onChange='getoutput()'> <br>
Output Filename <input id='outputfile' type='text' name='outputfile'><br>
Extension <input id='extension' type='text' name='extension'>
</form>