我已经尝试了所有的方法,但我无法让dropzone.js将文件发送到服务器。我觉得一定有一些非常基本的东西,我在这里没有得到。
我现在所要做的就是让文件在用户选择时自动上传(样式无关紧要),但这似乎不会触发我的php代码,我只能假设它没有提交(目标页面与调用它的页面相同)。
HTML:
<?php
if (!empty($_FILES)) {
print "Files exist";
}
?>
<ul class="submission_container">
<li id="file_01" title="Click here to upload files">
<div class="ledger_preview">
<form action="/file-upload" class="dropzone" id="file-one">
+
</form>
</div>
</li>
</ul>
Javascript:
Dropzone.options.fileOne = {
url: 'submit.php',
paramName: 'file_01',
method: 'POST',
parallelUploads: 1,
clickable: true,
maxFilesize: 7,
acceptedFiles: 'application/pdf',
autoProcessQueue: true,
dictDefaultMessage: '',
dictFallbackMessage: '',
dictFallbackText: '',
dictFallbackText: '',
dictInvalidFileType: '',
dictFileTooBig: '',
dictResponseError: '',
dictCancelUpload: '',
dictCancelUploadConfirmation: '',
dictRemoveFile: '',
dictMaxFilesExceeded: '',
accept: function(file, done) {
done();
}
}
CSS:
li {
list-style-type: none;
}
.submission_container {
margin: 0 auto;
}
.ledger_preview {
height: 7.647em;
width: 12em;
display: inline-block;
border: 1em solid #A3A3A3;
}
.dropzone {
text-align: right;
font-size: 8em;
font-weight: 900;
color: #A3A3A3;
display: inline-block;
width: 100%;
height: 100%;
}
FSFiddle(不带PHP):http://jsfiddle.net/qo4cLeco/
我看到表单中有-action参数,Dropzone中有url参数。
Dropzone中的Url参数必须在表单以外的元素上指定(或者当表单没有操作属性时)。
在你的JsFiddle示例中,帖子被上传到/文件上传-你确定你在那里等待上传的文件吗?或者您正在submit.php中等待他们?
我相信,如果你删除了一个你不需要的参数——表单中的action参数或DropZone配置中的url参数,一切都会好起来。
所以我误解了发生的事情的机制。文件是通过ajax调用提交的,而我正期待页面重新加载。当我用将文件粘贴到服务器上所需的代码替换PHP时,代码似乎可以工作。