如何要上传的文件也会从悬浮窗传递到行动网址是什么?(How do the files to uplo

2019-10-20 00:04发布

我内置有作为的TYPO3(PHP)扩展的形式。 安装悬浮窗之前,形如我填写信息,上传文件,并提交表单,正确的行为发生(在这种情况下法正确工作,这意味着我收到一封电子邮件,所有的信息及上传文件一个附件)。

如果我按照本文中的说明结合正常的形式悬浮窗 ,我可以拖放文件到我的表格和文件预览可见。 当我点击“提交”,我得到一个TYPO3的/ PHP的错误:

   :saveUserFiles() must be of the type array, null given

这看起来像悬浮窗的方式将文件传送到后端最终的问题是有没有办法让我看看什么是悬浮窗传递提交?

这里是我的悬浮窗选项,从上面的FAQ页面的建议几乎没有改变:

 Dropzone.options.general = {
                paramName: "file", // The name that will be used to transfer the file

                autoProcessQueue: false,
                uploadMultiple: true,
                parallelUploads: 100,
                maxFiles: 100,
                addRemoveLinks: true,

                // The setting up of the dropzone
                init: function() {
                    var myDropzone = this;

                    // First change the button to actually tell Dropzone to process the queue.
                    this.element.querySelector("button[type=submit]").addEventListener("click", function(e) {
                        // Make sure that the form isn't actually being sent.
                        e.preventDefault();
                        e.stopPropagation();
                        myDropzone.processQueue();
                    });

                    // Listen to the sendingmultiple event. In this case, it's the sendingmultiple event instead
                    // of the sending event because uploadMultiple is set to true.
                    this.on("sendingmultiple", function() {
                        console.log("sending multiple");
                    });
                    this.on("successmultiple", function(files, response) {
                        console.log("success multiple");
                    });
                    this.on("errormultiple", function(files, response) {
                        console.log("error multiple");
                    });
                }
            };

-

更新,在回应评论:

“正常上传”输入是这样的:

<input type="file" name="tx_applicationformgeneral[form][files][]" />

我试图把文件输入的名称到悬浮窗选项,如下所示:

paramName: "tx_applicationformgeneral[form][files][]",

但得到了同样的错误了。

这里是整个表格结构(simplified-这是一个很长的表格):

 <form enctype="multipart/form-data" method="post" name="form" class="dropzone dz-clickable" id="general" action="index.php?id=328">


<fieldset>

    <legend>Some input</legend>


    <ul class="inline-textbox">
        <li>

    <input type="text" id="first_name" name="tx_applicationformgeneral[form][firstname]" value="" placeholder="Name *">
        </li>
        <li>

    </ul>
</fieldset>

<fieldset>

    <legend>File upload</legend>

    <div class="dropzone-previews">

    </div>

</fieldset>


<input class="button" type="submit" name="tx_applicationformgeneral[mySubmit]" value="Submit">

 </form>

更新2

看着POST数据后,在意见的建议,我现在可以报告说,正在发生的事情是,当窗体的“Dropzoned”的形式不发送数据文件上传输入。 “非Dropzoned”形式向外发送数据的这个块,如果该文件的上传是空的:

 ------WebKitFormBoundarySq0AkJrSAe1kmAOu
 Content-Disposition: form-data; name="tx_applicationformgeneral[form][files][]";      filename=""
 Content-Type: application/octet-stream

而这,如果有一个文件:

 ------WebKitFormBoundaryrEmFA8jYcHY56WAB
 Content-Disposition: form-data; name="tx_applicationformgeneral[form][files][]";      filename="DSC01413_01.JPG"
 Content-Type: image/jpeg

有对应于POST数据这一信息一旦我初始化形式作为悬浮窗罢了。

文章来源: How do the files to upload get passed from Dropzone to the action URL?