javascript – $_FILES使用DropzoneJS和Symfony 1.4返回空
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – $_FILES使用DropzoneJS和Symfony 1.4返回空,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2393字,纯文字阅读大概需要4分钟。
内容图文
![javascript – $_FILES使用DropzoneJS和Symfony 1.4返回空](/upload/InfoBanner/zyjiaocheng/767/8764e5d7ee88464a90bcfb989998c18d.jpg)
我已经在网上浏览了几篇SO和博客文章,但找不到有用的东西.
我正在尝试设置一个简单的HTML拖放表单,用户可以通过DropzoneJS一次上传多个文件.
HTML:
<form action='<?php echo url_for("@menu_basic_menu"); ?>' method="post" enctype="multipart/form-data" class="dropzone" id="basic_menu_dropzone"></form>
<button id="file_submit_btn" type="submit" form='basic_menu_dropzone' value="submit">SUBMIT</button>
使用Javascript:
jQuery(document).ready(function($) {
Dropzone.autoDiscover = false;
var dropzone = new Dropzone('#basic_menu_dropzone', {
paramName: 'files',
addRemoveLinks: true,
uploadMultiple: true,
autoProcessQueue: false,
});
$('#file_submit_btn').click(function() {
dropzone.processQueue();
});
});
在这里您会注意到我还设置了一个提交按钮,以便我们只在提交时启动文件的上传过程
PHP(actions.class.php片段):
public function executeBasicMenu(sfWebRequest $request) {
if ($request->isMethod('post')) {
print_r_tree($_FILES);
}
}
我有一切设置,以便在提交时正确触发executeBasicMenu,但$_FILES总是返回一个空数组.
笔记:
>如果我用常规输入类型=’文件’标签替换dropzone表单,那么一切正常,所以我的直觉就是告诉我我的配置dropzone在某处是错误的.
>我已经逐步完成了dropzone.js源代码,当它即将在1386行发送数据时它看起来是正确的:xhr.send(formData),
formData为空.
任何帮助深表感谢!
解决方法:
终于找到了我的错误!
在我的代码中,我在单击按钮上提交表单:
<button id="file_submit_btn" type="submit" form='basic_menu_dropzone' value="submit">SUBMIT</button>
但我也试图在同一个按钮点击上调用processQueue().
但是,表单将在文件发送之前提交,因此PHP端不会收到任何文件.
我也错误地实例化了我的dropzone实例 – 我应该包含一个parallelUploads字段,以便我可以一次上传多个文件.
因此,使用我新的更新代码,一切都按预期工作,我可以在PHP端处理我的文件!
解
HTML
<form action='<?php echo url_for("@menu_basic_menu"); ?>'method="post" enctype="multipart/form-data" class="dropzone" id="basic_menu_dropzone"></form>
<button id="file_submit_btn" type="button" form='basic_menu_dropzone' value="submit">SUBMIT</button>
JS
jQuery(document).ready(function($) {
Dropzone.autoDiscover = false;
var dropzone = new Dropzone('#basic_menu_dropzone', {
paramName: 'files',
addRemoveLinks: true,
uploadMultiple: true,
autoProcessQueue: false,
parallelUploads: 10
});
$('#file_submit_btn').click(function() {
dropzone.processQueue();
});
});
PHP
public function executeBasicMenu(sfWebRequest $request) {
foreach($_FILES['files']['name'] as $index => $tmpName) {
error_log($tmpName);
}
}
希望这也有助于其他人!
内容总结
以上是互联网集市为您收集整理的javascript – $_FILES使用DropzoneJS和Symfony 1.4返回空全部内容,希望文章能够帮你解决javascript – $_FILES使用DropzoneJS和Symfony 1.4返回空所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。