Dropzone多个文件上传不适用于Excel文件

Posted

技术标签:

【中文标题】Dropzone多个文件上传不适用于Excel文件【英文标题】:Dropzone Multiple File upload not working For Excel File 【发布时间】:2019-10-31 22:56:54 【问题描述】:

我在 Dropzone 和 Laravel 5.7 中遇到了问题。我目前正在通过 dropzone 上传 excel 文件。但它不能正常工作。例如,如果我添加 10 个文件,那么在我的数据库中有 10 个具有不同文件名的条目,但在文件存储文件夹中没有 10 个文件,它从 6、7、8 个文件不等。我正在为upload_max_filesizemax_file_uploads 更改我的php.ini 文件。这是我的代码 sn-p。 我的 Js 代码

<script type="text/javascript">
    Dropzone.options.dropzone =
        
            parallelUploads: 1, // Uploads one (1) file at a time, change to whatever you like.
            autoProcessQueue: true,
            uploadMultiple: true,
            maxFiles: 100,
            maxFilesize: 3,
            autoQueue: true,
            renameFile: function (file) 
                var dt = new Date();
                var time = dt.getTime();
                return time + file.name;
            ,
            addRemoveLinks: true,
            timeout: 50000,
            removedfile: function (file)
            
                var name = file.upload.filename;
                $.ajax(
                    headers: 
                        'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
                    ,
                    type: 'POST',
                    url: ' url("admin.pos.deleteexcel") ',
                    data: filename: name,
                    success: function (data) 
                        console.log("File has been successfully removed!!");
                    ,
                    error: function (e) 
                        console.log(e);
                    );
                var fileRef;
                return (fileRef = file.previewElement) != null ?
                        fileRef.parentNode.removeChild(file.previewElement) : void 0;
            ,
            success: function (file, response)
            
                console.log(response);
            ,
            error: function (file, response)
            
                return false;
            
        ;
</script>

我的表格是

!! Form::open(['method'=>'POST', 'action'=>'backend\ExcelController@multipleExcelStore', 'files'=>true, 'id' => 'dropzone_form', 'class'=>'dropzone needsclick dz-clickable']) !!
        <div class="dz-message needsclick">
            <div class="search-block">
                <div class="row">
                    <div class="col-xs-12">
                        <div class="upload_container">
                            <div class="upbtn_block_1">
                                Drag &amp; drop Files Here
                            </div><!--/upbtn_block_1 -->
                            <div class="up_text_block">Or</div>
                            <div class="upload_btn"><span>Browse File</span></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        !! Form::close() !!

还有我的控制器代码

public function multipleExcelStore(Request $request) 
    $input = [];
    $imageName = Carbon::now()->format('Y') . '/' . Carbon::now()->format('m') . '/' . uniqid() . '_' . time() . '.' . $request->file('file')->getClientOriginalExtension();
    $destinationPath = Config::get('constants.PO_MULTILE_ATTACHEMNT') . '/';
    Helper::uploadFile($request->file('file'), null, $destinationPath, $imageName);
    $input['attachment'] = Config::get('constants.PO_MULTILE_ATTACHEMNT') . '/' . $imageName;
    $input['process_user_id'] = Auth::guard('admin')->user()->id;
    $input['process_ip'] = $request->ip();
    $input['name'] = $request->file('file')->getClientOriginalName();
    PosExcel::create($input);
    return response()->json(['success' => $imageName]);

我用谷歌搜索但没有成功返回。 谢谢你

【问题讨论】:

【参考方案1】:

你有没有试过删除

autoProcessQueue: true,
            uploadMultiple: true,

我有另一个需要多次上传的项目,不需要在 javascript 中使用该参数,队列也可能是问题所在,尝试并告诉我们:)

祝你好运

【讨论】:

你说不要全部上传,而是上传更多的1个文件,可能是文件大小的问题?最大文件大小:3,?? 我也改变了它但没有工作,我还在我的问题中告诉我我的数据库插入工作正常但我的存储文件夹没有同时上传文件 如果您说在数据库中注册正常,那么您所说的问题是存储它。尝试使用 $image->move(public_path().$path, $name); 存储它或者你想要的地方而不是使用 Helper::uploadfile 但是如果我的存储有问题,为什么它存储了一些文件? 文件类型、操作系统可能...我会尝试知道是否总是相同的文件不上传

以上是关于Dropzone多个文件上传不适用于Excel文件的主要内容,如果未能解决你的问题,请参考以下文章

php Dropzone.js与php多个文件上传

使用 dropzone 和使用 FormValidation 插件的其他表单字段上传多个文件

在 React Redux 存储中存储文件对象的最佳方式(从 DropZone 上传文件?)

Dropzone.js上传后不显示结果

为啥 formData 不适用于多个文件?

Dropzone处理队列不适用于服务器端验证