我正在尝试使用表单中的dropzone上传图像和视频。选择几个图像和视频时出现问题,但显示的是图像的缩略图,而没有视频的缩略图。它们出现了,但是就像空白图片一样。他们也被上传到文件夹和数据库中。我不知道如何解决这个问题,我尝试了一切。任何帮助表示赞赏。这是我的代码。
index.blade.php
<div id="img" class="row">
<input type="hidden" id="hideninput" data-src="tmp"value="{{old('image')}}" name="image" class="image">
@if (old('image'))
@foreach (array_filter(explode(',',old('image')), 'strlen') as $key =>$value)
<div id="{{'div_image_'.$key}}"class="col-md-3 img-wrap" >
<button data="{{$key}}" type="button" class="closebutton">
<span aria-hidden="true">×</span>
</button>
<img id="{{'image_'.$key}}" data={{$value}} src="/storage/tmp/{{$value}}" class="img-fluid">
</div>
@endforeach
@endif
</div>
@error('image')
<div class="alert alert-danger" role="alert">
{{ 'At least one image is required' }}
</div>
@enderror
</form>
<hr class="mb-4">
<form action="/PhotoRequest" class="dropzone" data-count="{{ old('image') ? 10-count(array_filter(explode(',',old('image')), 'strlen')) : 10 }}" id="dropzone">
{{csrf_field()}}
Drop files here to Upload <br>
Maximum 10 images, Size limit 20MB
</form>
<hr class="mb-4">
<button form="form" class="btn btn-primary btn-lg btn-block" type="submit">Kreiraj Oglas</button>
</div>
</div>
</div>
<script>
var images = [];
var i = 0;
var docu = '';
var img = '';
var docudiv = '';
var closeSpan = '';
Dropzone.options.dropzone = {
maxFilesize: 20,
parallelUploads: 1,
maxFiles: $('.dropzone').attr('data-count'),
acceptedFiles: "image/*,video/*",
addRemoveLinks: true,
autoProcessQueue: true,
previewTemplate: '<div style="display:none"></div>',
dictDefaultMessage: "",
addedfile: function(file) {
this.options.maxFiles = $('.dropzone').attr('data-count');
},
error: function (file, message, xhr) {
alert(file.name + ' ' + message);
},
success: function (file, response) {
images[i] = response['filename'];
file.filename = response['filename'];
file.id = i;
var oldvalue = document.getElementById("hideninput").value;
document.getElementById("hideninput").value=oldvalue+','+images[i];
docu = document.getElementById("img");
docudiv = document.createElement("div");
docudiv.className = 'col-md-3 img-wrap dz-remove';
docudiv.id = i;
docu.appendChild(docudiv);
closeSpan = document.createElement("span");
closeSpan.setAttribute("class", "close");
closeSpan.textContent = "x";
docudiv.appendChild(closeSpan);
img = document.createElement("img");
img.setAttribute("src", src = '/storage/tmp/' + response['filename']);
img.className = 'img-fluid';
docudiv.appendChild(img);
var _this = this;
closeSpan.addEventListener("click", function (e) {
e.preventDefault();
e.stopPropagation();
_this.removeFile(file);
});
i++;
},
removedfile: function (file, i) {
var name = file.name;
if (name) {
$.ajax({
headers: {
'X-CSRF-Token': $('input[name="_token"]').val()
},
type: 'DELETE',
url: "/PhotoRequest/" + file.filename,
dataType: 'json'
});
}
var oldvalue = document.getElementById("hideninput").value;
var newvalue = oldvalue.replace(file.filename,'');
if (newvalue.indexOf(',,') > -1){
newvalue=newvalue.replace(",,", ",");
}
if (newvalue.startsWith(",")) {
newvalue = newvalue.substr(1);
}
if ( newvalue.endsWith(",")) {
newvalue = newvalue.slice(0, -1);
}
document.getElementById("hideninput").value=newvalue;
var elem = document.getElementById(file.id);
elem.parentNode.removeChild(elem);
var _ref;
return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0;
},
};
$(document).ready(function() {
$(".closebutton").click(function() {
var val = $(this).attr('data');
var img_src = document.getElementById('image_'+val).getAttribute('data');
var data_src =document.getElementById("hideninput").getAttribute('data-src');
var oldvalue = document.getElementById("hideninput").value;
var newvalue = oldvalue.replace(img_src,'');
if (newvalue.indexOf(',,') > -1) {
newvalue=newvalue.replace(",,", ",");
}
if ( newvalue.startsWith(",")) {
newvalue = newvalue.substr(1);
}
if ( newvalue.endsWith(",")) {
newvalue = newvalue.slice(0, -1);
}
document.getElementById("hideninput").value=newvalue;
var newnumber= document.getElementById("dropzone").getAttribute('data-count');
newnumber=+newnumber+ +1;
document.getElementById("dropzone").setAttribute("data-count", newnumber);
$.ajax({
headers: {
'X-CSRF-Token': $('input[name="_token"]').val()
},
type: 'DELETE',
url: "/PhotoRequest/" + img_src,
dataType: 'json',
data: {data_src:data_src}
});
document.getElementById("div_image_"+val).remove();
});
});
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$(document).ready(function() {
load_data();
function load_data(query) {
$.ajax({
url:"/searchlocation",
type:"POST",
data:{ "_token": "{{ csrf_token() }}",query:query},
success:function(data)
{
$('#result').html(data);
}
});
}
$('#input').keyup(function() {
var search = $(this).val();
if (search != '') {
load_data(search);
}
else {
load_data();
}
});
});
</script>