【发布时间】:2015-05-22 17:17:06
【问题描述】:
我尝试使用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,但我也尝试过旧版本。
【问题讨论】:
-
你知道 Ravishanker Kusuma 的jQuery Upload File Plugin。如果我不认为这是一个可靠的解决方案,我不会通过引入不同的插件来混淆水。我自己一直在用它,觉得很神奇。此外,作者在他的 Disqus 线程上监控 cmets 并每天提供协助。 支持“开箱即用”的拖放。他的网站上有示例,SO 上还有许多其他示例。
标签: php file-upload dropzone.js