【问题标题】:Laravel - How to capture Ajax Request Payload Data?Laravel - 如何捕获 Ajax 请求有效负载数据?
【发布时间】:2018-05-16 07:01:46
【问题描述】:

不是重复的问题!!!


这是我的代码,使用 Laravel 5.4


.blade.php 文件中的表格:

<form id="read-data-form" name="form" method="post" enctype="multipart/form-data" class="form-horizontal">
    <div class="row">
        <div class="col-md-6">
            <div class="form-group">
                <input name="comCode" id="comCode" type="hidden" value=""/>
                <label><span class="text-danger">*</span> Upload File :</label>
                <input name="file" id="fileToUpload" type="file" accept="text/*" />
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-6"></div>
        <div class="col-md-6 ">
            <div class="text-right">
                <button type="submit" class="btn operations-btn btn-default" id="upload">Upload</button>
                <button type="button" class="btn operations-btn btn-default" id="stop">Stop</button>
            </div>
        </div>
    </div>
</form>

.js 文件中的 Ajax 请求:

$("form #read-data-form").submit(function(e) {
    e.preventDefault();  

    var formData = new FormData(this);

    var promise = $.ajax({
        url: 'read_data/file/check',
        headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
        type: 'POST',
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
        encode: true
    });
    promise.done(function(response){
    });
    promise.fail(function(error){
    });
    promise.always(function(){
    });
}

浏览器控制台 > 网络 > 标头 > 请求负载:

web.php 文件中的路由:

Route::post('read_data/file/check', 'ReadDataController@checkFile');

ReadDataController.php 文件中的 checkFile() 方法:

public function checkFile(Request $request)
{
    $comCode = trim($request->comCode);

    $file = $request->file('file');
    dd($file);
} 

浏览器控制台 > 网络 > 预览 > 请求负载:

这就是 dd() 的输出方式。


问题:

在没有 ajax 请求的情况下,无法像普通的“multipart/form-data”表单一样捕获文件。

【问题讨论】:

  • 你得到了所有的细节,你的实际问题是什么? normal 'multipart/form-data' 是什么意思?
  • 正常表示不使用ajax
  • 问题是在没有文件“名称”属性的情况下获取详细信息。我想按“名称”捕获文件。
  • 当你点击 Upload 按钮时你没有得到文件,对吧?
  • 不,我正在获取文件。但是,我无法通过“名称”来捕捉它。

标签: ajax laravel laravel-5 laravel-5.4 ajax-request


【解决方案1】:

好的。最后,我有一个资深人士给出的解决方案。


删除此代码:

$file = $request->file('file'); 

添加了以下代码:

$uploadDirPath = 'C:/uploaded_files/';
$uploadFile = "moved_uploded_file.txt";

$request->file('file')->move($uploadDirPath, $uploadFile);
$uploaded_file = $uploadDirPath.$uploadFile;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2017-05-01
    相关资源
    最近更新 更多