При предварительном просмотре изображения, когда я выбираю видео, в правой части предварительного просмотра видеоизображения отображается пустое поле изображения. И когда я выбираю картинку, в левой части окна предварительного просмотра картинки отображается пустое место. Таким образом, тег <video>
и тег <img>
отображаются вместе.
Вот код соответствующей части HTML, которая находится внутри тега формы:
<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>
Вот соответствующая jQuery часть:
$(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"});
Я хочу, чтобы отображался либо тег <video>
, либо тег <img>
, но не оба.
Здесь я создал следующий код. Во-первых, я беру расширение файла из тега ввода, чтобы увидеть, является ли оно jpg или mp4. Если расширение файла jpg, оно переходит в состояние if
, а если это mp4, то оно переходит в состояние else
. Проблема в том, что я не могу сделать var ext
глобальным. Это локально, независимо от того, сколько я пытаюсь сделать его глобальным.
<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>