上传PDF's使用Dropzone.js&拉拉维尔.有些上传成功,另一些则返回一个空对象

Uploading PDF's using Dropzone.js & Laravel. Some upload successfully, others return an empty object?

本文关键字:返回 PDF 成功 一个 对象 js Dropzone 使用 amp 上传      更新时间:2023-10-08

我正试图使用Dropzone.js将一些文件上传到运行Laravel 4.2的PHP环境中。我遇到了一个非常令人困惑的错误,一些PDF会成功上传,而另一些则不会

当我说有些没有成功上传时,我的意思是上传后Input::all()中可用的内容:

[file] => Symfony'Component'HttpFoundation'File'UploadedFile Object
    (
        [test:Symfony'Component'HttpFoundation'File'UploadedFile:private] => 
        [originalName:Symfony'Component'HttpFoundation'File'UploadedFile:private] => presskit.pdf
        [mimeType:Symfony'Component'HttpFoundation'File'UploadedFile:private] => application/octet-stream
        [size:Symfony'Component'HttpFoundation'File'UploadedFile:private] => 0
        [error:Symfony'Component'HttpFoundation'File'UploadedFile:private] => 1
        [pathName:SplFileInfo:private] => 
        [fileName:SplFileInfo:private] => 
    )

你会立即注意到,有些事情是错误的:

  1. 模拟类型被建模为CCD_ 2。这表示无法解析实际的mimetype
  2. 文件大小为0
  3. 错误为1

然而,在向服务器发出请求的过程中,我可以非常清楚地看到,我的请求是用application/pdf:的mimetype发送的

-----------------------------6541909715113
Content-Disposition: form-data; name="file"; filename="presskit.pdf"
Content-Type: application/pdf 

这是发送到服务器的数据的开始。在客户端,我可以在所有浏览器中重现这一点。这是我的dropzone.js功能:

Dropzone.options.uploadedFilesDropzone = {
    autoProcessQueue: false,
    maxFilesize: 1024, //MB
    addRemoveLinks: true,
    init: function() {
        var uploadedFilesDropzone = this;
        $('#submit').on('click', function() {
            uploadedFilesDropzone.processQueue();
        });
    }
    successmultiple: function(files, message) {
        var uploadedFilesDropzone = this;
        console.log(files);
        var wereAnyFilesErrored = false;
        $.each(files, function(index, file) {
            if (!message.errors) {
                file.previewElement.classList.add('dz-success');
                console.log(message);
            } else {
                wereAnyFilesErrored = true;
                var node, _i, _len, _ref, _results;
                if (file.previewElement) {
                    file.previewElement.classList.add("dz-error");
                    if (typeof message !== "String" && message.error) {
                        message = message.error;
                    }
                    _ref = file.previewElement.querySelectorAll("[data-dz-errormessage]");
                    _results = [];
                    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
                        node = _ref[_i];
                        _results.push(node.textContent = message);
                    }
                }
            }
        });
        if (wereAnyFilesErrored === true) {
            $.each(files, function(index, file) {
                file.status = 'queued';
                console.log(file);
            });
        }
    }
}

此外,PDF上传是否正确似乎没有任何区别。起初,我认为这可能与它保存为的PDF版本有关,但两者都是1.4&1.6可能是成功的,也可能是失败的。

有人能告诉我发生了什么事吗?

一些php安装对文件上传有非常严格的限制。它可能只是文件的大小。你能检查一下你的php.ini吗?

条目将如下所示:

; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M