dropzone.js 发送空的 $_FILES
dropzone.js sends empty $_FILES
我尝试使用 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>
当我使用文件输入按钮手动 select 文件时,我得到了这个结果:
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,但我也尝试过旧版本。
您不应该使用拖放区提交(点击提交按钮),它是异步工作的,所以一旦您将文件拖入,它就会点击您的 php 上传脚本,而无需执行任何其他操作。
一旦你点击提交,这将是第二次,你正在重新提交表格,它会显示为空。
您可能也应该将 php 放在单独的页面上,而不是提交给自己。提交后您将无法在浏览器中查看此 post,因为它是 ajax 和异步的,但您可以使用 chrome 的开发工具查看 post 至少。
当我的文件大于 php.ini 文件中配置的最大值 (upload_max_filesize) 时,我也遇到了同样的情况。
您可能想要检查的其他设置:
- upload_max_filesize
- post_max_size
- max_input_time
- max_execution_time
我尝试使用 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>
当我使用文件输入按钮手动 select 文件时,我得到了这个结果:
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,但我也尝试过旧版本。
您不应该使用拖放区提交(点击提交按钮),它是异步工作的,所以一旦您将文件拖入,它就会点击您的 php 上传脚本,而无需执行任何其他操作。 一旦你点击提交,这将是第二次,你正在重新提交表格,它会显示为空。
您可能也应该将 php 放在单独的页面上,而不是提交给自己。提交后您将无法在浏览器中查看此 post,因为它是 ajax 和异步的,但您可以使用 chrome 的开发工具查看 post 至少。
当我的文件大于 php.ini 文件中配置的最大值 (upload_max_filesize) 时,我也遇到了同样的情况。
您可能想要检查的其他设置:
- upload_max_filesize
- post_max_size
- max_input_time
- max_execution_time