我目前正在使用dropzone.js v3.10.2。我在显示已上载的现有文件时遇到问题。我非常精通php,但是我对ajax和js的了解有限
如果你能帮忙,那就太棒了
提前谢谢
index.php
<;html>;
<;头>;
<;链接href=”https://stackoverflow.com/questions/24009298/css/dropzone.css“type=“text/css”rel=“stylesheet”/>;
<;脚本src=”https://stackoverflow.com/questions/24009298/ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js“></脚本>;
<;脚本src=”https://stackoverflow.com/questions/24009298/dropzone.min.js“></脚本>;
<;脚本>;
Dropzone.options.myDropzone={
init:function(){
thisDropzone=这个;
$.get('upload.php',函数(数据){
$。每个(数据、函数(键、值){
var mockFile={name:value.name,size:value.size};
thisDropzone.options.addedfile.call(thisDropzone,mockFile);
调用(thisDropzone,mockFile,“uploads/”+value.name);
});
});
}
};
</脚本>;
</头>;
<;车身>;
<;form action=“upload.php”class=“dropzone”id=“my dropzone”></表格>;
</车身>;
upload.php
<;?php
$ds=目录\分隔符;
$storeFolder='uploads';
如果(!空($\u文件)){
$tempFile=$\u FILES['file']['tmp\u name'];
$targetPath=dirname(_文件).$ds.$storeFolder.$ds;
$targetFile=$targetPath.$\u文件['file']['name'];
移动上传的文件($tempFile,$targetFile);
}否则{
$result=array();
$files=scandir($storeFolder);//1
if(false!==$files){
foreach($files作为$file){
如果('.!=$file&;'.'!=$file){//2
$obj['name']=$file;
$obj['size']=filesize($storeFolder.$ds.$file);
$result[]=$obj;
}
}
}
标题('Content-type:text/json');//3
标题('Content-type:application/json');
echo json_编码($result);
}
?>;
我知道php正在检索数据
提前谢谢
达米安
我检查了代码(来自starTutorial),它也不适合我(?)
我通过更换以下部件使其正常工作:
$.get('upload.php',函数(数据){
$。每个(数据、函数(键、值){
var mockFile={name:value.name,size:value.size};
thisDropzone.options.addedfile.call(thisDropzone,mockFile);
调用(thisDropzone,mockFile,“uploads/”+value.name);
});
});
为此:
$.getJSON('files/list all',函数(数据){
$.each(数据、函数(索引、val){
var mockFile={name:val.name,size:val.size};
thisDropzone.options.addedfile.call(thisDropzone,mockFile);
调用(thisDropzone,mockFile,“uploads/”+val.name);
});
});
这一回答值得赞扬:https://stackoverflow.com/a/5531883/984975
编辑:
在版本4.0中,现有文件的缩略图将显示,其中包含提示栏。要解决此问题,请添加:
thisDropzone.emit(“完成”,mockFile);