我尝试使用dropzone.js制作一个拖放文件上传区域,我真的非常绝望。我有这个最简单的脚本:
<?php
print_r($_FILES);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
</head>
<body>
<form action="/" method="POST" enctype="multipart/form-data" class="dropzone">
<input name="file" type="file" />
<input type="submit" name="submit" value="Submit" />
</form>
<script type='text/javascript' src="dropzone.js"></script>
</body>
</html>
当我使用文件输入按钮手动选择文件时,我得到了这个结果:
Array ( [file] => Array ( [name] => test.txt [type] => text/plain [tmp_name] => C:\wamp\tmp\php4DFF.tmp [error] => 0 [size] => 247 ) )
但是,当我使用dropzone拖放时,文件显示为已上传,但提交后我得到了这个:
Array ( [file] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )
也称为 UPLOAD_ERR_NO_FILE 值:4;没有上传文件。
我在这里错过了什么吗?
我尝试使用 autoProcessQueue:false , autoDiscover:false ,自动表单提交,不同脚本,不同服务器(apache / nginx)等设置,但绝对没有似乎对我有用。我现在正在监督一些愚蠢的事情。
我使用dropzone.js v4.0.1,但我也尝试过旧版本。
答案 0 :(得分:2)
你不应该使用drop zone提交(点击提交按钮),它会异步工作,所以一旦你删除文件,它就会点击你的php上传脚本,而不需要做任何其他事情。 一旦你点击提交,它将是第二次,你重新提交表单,它将显示为空。
你应该把你的php放在一个单独的页面上,而不是提交给自己。提交后,您将无法在浏览器中查看此帖子,因为它是ajax和async,但您可以使用chrome的开发工具来查看帖子至少。
答案 1 :(得分:0)
同样的事情发生在我身上,当我的文件大于我的 php.ini 文件中的配置最大值 (upload_max_filesize) 时。
您可能想要检查的其他设置: