Javascript 如何使用Dropzone.js向您显示已存储在服务器上的文件
我不明白<代码>调用其始终未定义 创建模拟文件:Javascript 如何使用Dropzone.js向您显示已存储在服务器上的文件,javascript,dropzone.js,Javascript,Dropzone.js,我不明白调用其始终未定义 创建模拟文件: var mockFile = { name: "Filename", size: 12345 }; 调用默认的addedfile事件处理程序 myDropzone.options.addedfile.call(myDropzone, mockFile); 并可选择显示文件的缩略图: myDropzone.options. thumbnail.call(myDropzone, mockFile, "/image/url"); 终于 $(functio
var mockFile = { name: "Filename", size: 12345 };
调用默认的addedfile事件处理程序
myDropzone.options.addedfile.call(myDropzone, mockFile);
并可选择显示文件的缩略图:
myDropzone.options. thumbnail.call(myDropzone, mockFile, "/image/url");
终于
$(function() {
var mockFile = { name: "banner2.jpg", size: 12345 };
var myDropzone = new Dropzone("#my-awesome-dropzone");
myDropzone.options.addedfile.call(myDropzone, mockFile);
myDropzone.options.thumbnail.call(myDropzone, mockFile, "http://localhost/test/drop/uploads/banner2.jpg");
})
我也很难接受这个。这一点作为出发点会有更大的帮助:
Dropzone.autoDiscover = false; // otherwise will be initialized twice
var myDropzoneOptions = {
maxFilesize: 5,
addRemoveLinks: true,
clickable: true
};
var myDropzone = new Dropzone('#myDropzoneElement', myDropzoneOptions);
var mockFile = { name: "Existing file!", size: 12345 };
myDropzone.options.addedfile.call(myDropzone, mockFile);
myDropzone.options.thumbnail.call(myDropzone, mockFile, "http://url-to-thumb-goes-here");
您还可以使用以下代码:
<script>
Dropzone.options.myAwesomeDropzone = false;
Dropzone.autoDiscover = false;
$("#image").dropzone({
url: "http://someserver.com/upload.php",
paramName: "image", // The name that will be used to transfer the file
maxFilesize: 2, // MB
maxFiles: 5,
parallelUploads: 5,
addRemoveLinks: true,
dictMaxFilesExceeded: "You can only upload upto 5 images",
dictRemoveFile: "Delete",
dictCancelUploadConfirmation: "Are you sure to cancel upload?",
accept: function (file, done) {
console.log(file)
if ((file.type).toLowerCase() != "image/jpg" &&
(file.type).toLowerCase() != "image/gif" &&
(file.type).toLowerCase() != "image/jpeg" &&
(file.type).toLowerCase() != "image/png"
) {
done("Invalid file");
}
else {
done();
}
},
init: function () {
var mockFile = { name: "myimage.jpg", size: 12345, type: 'image/jpeg' };
this.addFile.call(this, mockFile);
this.options.thumbnail.call(this, mockFile, "http://someserver.com/myimage.jpg");
}
});
</script>
你可以试试这个
var file_image = "http://someserver.com/myimage.jpg";
var mockFile = { name: "myimage.jpg", size: 12345 };
$("#dropzone").dropzone({
url: 'false',
maxFiles: 1,
maxFilesize:10,//mb
acceptedFiles:'image/*',
init: function() {
this.on("addedfile", function(file){
this.options.thumbnail.call(this,file,file_image);
});
this.addFile.call(this,mockFile);
}
});
我的>=4.0解决方案基于“如何显示已存储在服务器上的文件”:
maxFiles:1,
init:函数(){
this.on('maxFilesExcepended',函数(文件){
这个.removeAllFiles();
此.addFile(文件);
});
var mocks=$dropzone.data('dropzone');
对于(var i=0;i
在这个答案中,它是通过显示一个缩略图来实现的
下面是使用执行此操作的示例
HTML元素
<form id="sample-img" action="/upload" class="dropzone">
<div class="dz-default dz-message"></div>
</form>
JSFIDLE上的工作示例:
基于上面朋克的出色回答,您不应该忘记添加
这个代码>在末尾,如下所示:
init: function () {
var mockFile = { name: <filename>, size: <filesize>, type: <filetype>, url: <file_url> };
this.files.push(mockFile);
this.emit('addedfile', mockFile);
this.createThumbnailFromUrl(mockFile, mockFile.url);
this.emit('complete', mockFile);
this._updateMaxFilesReachedClass();
}
init:function(){
var mockFile={name:,size:,type:,url:};
this.files.push(mockFile);
this.emit('addedfile',mockFile);
这个.createThumbnailFromUrl(mockFile,mockFile.url);
这个.emit('complete',mockFile);
这是。_updateMaxFilesReachedClass();
}
在Dropzone对象Init:Function()的Init函数上{调用此函数:
this.on("addedfile", function(file) {
//Access the preview element with file.previewElement and add event listeners, etc... to it.
var a = document.createElement('a');
a.setAttribute('href',"{{{protokoll}}}://{{{HTTP_HOST}}}/a-getfiledb.php?uuid="+file.uuid);
a.setAttribute('class',"btn btn-success");
a.setAttribute('style',"width:50%; margin-top:5px; border-left:1px solid black; cursor:pointer;");
a.innerHTML = "<i class='glyphicon glyphicon-download-alt'></i>";
file.previewTemplate.appendChild(a);
});
this.on(“addedfile”,函数(文件){
//使用file.previewElement访问预览元素,并向其中添加事件侦听器等。
var a=document.createElement('a');
a、 setAttribute('href',“{{{protokoll}}}://{{{{HTTP_HOST}}}}/a-getfiledb.php?uuid=“+file.uuid”);
a、 setAttribute('class','btn btn success');
a、 setAttribute('style',“宽度:50%;页边距顶部:5px;左边框:1px纯黑色;光标:指针;”);
a、 innerHTML=“”;
文件.previewTemplate.appendChild(a);
});
从“vue2 dropzone”导入vue2 dropzone
导入“vue2 dropzone/dist/vue2 dropzone.min.css”
导出默认值{
创建(){
让app=这个;
app.getAdvertById()
},
数据:函数(){
返回{
广告ID:null,
广告:{
标题:“”,
说明:“”,
确认:“”,
文件:{},
类别:“”,
城市:''
},
广告:【】,
dropzoneOptions:{
网址:'https://httpbin.org/post',
指钉宽度:150,
addRemoveLinks:是的,
maxFilesize:0.5,
dictDefaultMessage:“请在此处添加您的图像…”,
标题:{“我的精彩标题”:“标题值”}
},
}
},
方法:{
getAdvertById(){
让app=这个;
let id=app.$route.params.id;
app.advertId=id;
axios.get('/api/v1/advert/show/'+app.advertId)
.然后(功能(resp){
app.advert=相应数据
app.advert.files=resp.data.files
对于(var i=0;i0){
app.$refs.myVueDropzone.dropzone.options.maxFiles--
}
}
})
.catch(函数(){
警报(“无法加载您的广告”)
});
//console.log(app.advert.files)
},
}
}
值得注意的是,使用此方法添加的文件与“常规”文件的行为有所不同。首先,调用.removeAllFiles()时,我似乎无法摆脱它们在dropzone实例上。我将此作为一个问题发布,以防有人想贡献:这是因为您实际上没有向文件数组添加任何文件。请使用thisDropzone.files.push(mockFile)@dan在何处添加推送功能,我在下面添加了thumbnail.call,但它不起作用。问题是它没有将照片缩小到缩略图视图,而是只显示照片的左上角……我想在这里可以找到一个更好、更更新的答案:fwiw,我发现chrome在最新的v o上出现了addFile
错误f dropzone,使用options.addedfile.call代替工作了如何取消手动添加文件上的removeLink?请help@Adobe你能说得更具体一点吗?@Vicky Gonsalves Ok。你的解决方案提供在Dropzone中添加现有文件。我在初始化事件“addRemoveLinks”中的值为TRUE。因此所有预先添加的文件都带有“delete link”。但是如何为预添加的文件禁用“romoveLink”?如果您知道哪些是预添加的文件,您可以随时预添加
previewThumbailFromUrl({
selector: 'sample-img',
fileName: 'sampleImg',
imageURL: '/images/sample.png'
});
function previewThumbailFromUrl(opts) {
var imgDropzone = Dropzone.forElement("#" + opts.selector);
var mockFile = {
name: opts.fileName,
size: 12345,
accepted: true,
kind: 'image'
};
imgDropzone.emit("addedfile", mockFile);
imgDropzone.files.push(mockFile);
imgDropzone.createThumbnailFromUrl(mockFile, opts.imageURL, function() {
imgDropzone.emit("complete", mockFile);
});
}
init: function () {
var mockFile = { name: <filename>, size: <filesize>, type: <filetype>, url: <file_url> };
this.files.push(mockFile);
this.emit('addedfile', mockFile);
this.createThumbnailFromUrl(mockFile, mockFile.url);
this.emit('complete', mockFile);
this._updateMaxFilesReachedClass();
}
var mockFile = { name: "banner2.jpg", size: 12345, uuid: "085b2b23-70e7-4175-8355-89937d8d46f2" };
myDropzone.emit("addedfile", mockFile);
myDropzone.options.thumbnail.call(myDropzone, mockFile, "https://your-thumbnail-image.jpg");
this.on("addedfile", function(file) {
//Access the preview element with file.previewElement and add event listeners, etc... to it.
var a = document.createElement('a');
a.setAttribute('href',"{{{protokoll}}}://{{{HTTP_HOST}}}/a-getfiledb.php?uuid="+file.uuid);
a.setAttribute('class',"btn btn-success");
a.setAttribute('style',"width:50%; margin-top:5px; border-left:1px solid black; cursor:pointer;");
a.innerHTML = "<i class='glyphicon glyphicon-download-alt'></i>";
file.previewTemplate.appendChild(a);
});