Невозможно проверить зашифрованный текстовый документ (docx) в laravel, используя ajax - PullRequest
2 голосов
/ 27 февраля 2020

У меня проблема при загрузке зашифрованного текстового документа (docx) в laravel и ajax. Но когда я сохраняю этот документ как текстовый документ 97-2003 (do c), никаких проблем не возникает. Вот мой код

list_draft.blade. php

<div class="form-group">
    <div class="col-md-8" for="file_draft">
        <input type="file" class="form-control" name="file_draft" id="file_draft">
        <span class="help-block" for="file_draft"></span>
    </div>
    <div class="col-md-4" for="draft_status">
        <select class="form-control" name="draft_status" id="draft_status">
            <option value="">--Pls Select--</option>
            @foreach($drafts_status as $draft_status)
            <option value="{{$draft_status->draft_status_id}}">{{$draft_status->draft_status_name}}</option>
            @endforeach
        </select>
        <span class="help-block" for="draft_status"></span>
    </div>
</div>
<div class="form-group">
    <div class="col-md-8" for="doc_note">
        <textarea name="doc_note" id="doc_note" class="form-control" rows="3" placeholder="Notes"></textarea>
        <span class="help-block" for="doc_note"></span>
    </div> 
    <div class="col-md-4">
        <button type="button" id="submit-draft" class="btn btn-danger">Upload Draft</button>  
    </div>
</div>


<script>
    $("#submit-draft").on('click', function (e) {
        e.preventDefault();
        var data = new FormData();
        data.append('_token', '{{csrf_token()}}');
        data.append('doc_note', $('#doc_note').val());
        data.append('draft_status', $('#draft_status').val());
        var file = ($('#file_draft')[0].files[0]);
        data.append('file_draft', file);
        $.ajax({
            url: "{{route('lo.upload_draft')}}",
            type: "post",
            data: data,
            contentType: false,
            cache: false,
            processData: false,
            success: function (data) {
                //When success.....
            },
            error: function (data) {
                //When Error.....
            }
        });
    });
</script>

LoController. php

public function upload_draft(Request $request) {
        //assign variable
        $file = $request->file('file_draft');
        $lo_draft_status = $request->get('draft_status');
        $lo_draft_notes = $request->get('doc_note');

        $rule = array(
            "draft_status" => "required",
            "doc_note" => "required",
            "file_draft" => 'mimes:doc,docx|required'
        );
        $message = array(
            "draft_status.required" => "Field is required",
            "doc_note.required" => "Field is required",
            "file_draft.required" => "Field is required",
            "file_draft.mimes" => "File must be of the following type : doc, docx"
        );

        $request->validate($rule, $message);
        //Some code.....
}

когда я добавлю dd($file->getMimeType()); перед $request->validate($rule, $message);, он вернется application/encrypted

Я прочитал этот вопрос Использование Mimes для проверки Laravel File Post - Word File но они используют нормальный пост

использую Laravel 5.8.36

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...