使用FormData blob上载文件时更改$ _FILES的名称字段

时间:2014-05-13 15:34:11

标签: php ajax post file-upload plupload

所以我使用的是plupload,它使用附加了FormData的blob发送FILES:

来自plupload.dev.js的异常

formData = new o.FormData();

                // Add multipart params
                plupload.each(plupload.extend(args, up.settings.multipart_params), function(value, name) {
                    formData.append(name, value);
                });

                // Add file and send it
                formData.append(up.settings.file_data_name, chunkBlob);

                xhr.send(formData, {
                    runtime_order: up.settings.runtimes,
                    required_caps: up.settings.required_features,
                    preferred_caps: preferred_caps,
                    swf_url: up.settings.flash_swf_url,
                    xap_url: up.settings.silverlight_xap_url
                });

其中chunkBlob是要发送的块的文件Blob ...

现在这将按以下方式解析到我的服务器:

 [$_FILES] => Array
        (
            [file] => Array
                (
                    [name] => blob
                    [type] => application/octet-stream
                    [tmp_name] => /tmp/php0BuCPN
                    [error] => 0
                    [size] => 102400000
                )

        )

正如您所看到的,它将名称设置为“blob”.....我有没有办法在使用此方法发送blob时配置formData使用的名称?

背景问题

我的服务器已将upload_max_filesize设置为1024M .....我正在使用plupload来块我的文件以尝试上传大于1024M的文件....每个块只有100M大.... 。然而,我面临的一个问题是,如果文件大小超过1024M,有时$ _FILES和$ _POST最终会变空,即使单个blob大小只有100M ...

我的猜测是PHP使用$ _FILES ['file']的名称字段,并发现这些单独的块是针对同一个文件的,并相应地应用upload_max_filesize(即使每个块都小于upload_max_filesize限制)。 ...所以在这里我试图更改名称字段,如果$ _FILES ['file'],以便PHP将每个块视为一个单独的文件而不是相同的文件,因此所有的块都成功上传.... ..< - 让我知道我的推理是否有问题......

0 个答案:

没有答案