1

jqgrid があり、ファイルをアップロードしたいのですが、次のコードを取得しました

 colModel: [
    { name: "id", index:"id", key: true,width: 30,editable: false },

    { name: "name", index:"name", width: 100,editable: true },           
    { name: "fileToUpload", 
      editoptions: {
          enctype: "multipart/form-data"
        }, 
        edittype:'file',
        index: 'fileToUpload', 
        width: 150,
        align: "left",
        editable: true },
], 

jqgridのような機能を使用します-追加/編集ダイアログでファイルをアップロードします

私の問題は、ajaxfileupload 関数の url ファイルを使用してこのファイルをデータベースに保存する方法がわからないことです。

ありがとう!

4

1 に答える 1

0

これは私の実際の例です:

colModel: 
[
    {
        name: 'photo1',
        label: 'Фото1',
        index: 'photo1',
        search: false,
        editable: true,
        edittype: 'file',
        editoptions: {
            enctype: "multipart/form-data"
        },
        align: 'center',
    },
],

次に、コールバックを使用しました:

afterSubmitCell: function (serverResponse, rowId, cellName, value, iRow, iCol) {
    var fileCell = (+rowId + 1) + '_' + cellName;
    var grid = $("#reports");

    var fileContainer = document.getElementById(fileCell).files;
    if (fileContainer !== null) {
        if (fileContainer.length > 0) {
            var file = fileContainer[0];
            var form = new FormData();
            form.append(cellName, file);
            form.append('id', rowId);

            $.ajax({
                url: "/api/reports/save-file",
                type: 'POST',
                data: form,
                processData: false,
                contentType: false,
                success: function (data) {
                    grid.jqGrid('setGridParam', {datatype: 'json'})
                            .trigger('reloadGrid', [{page: 1}]);
                }
            });
        }
    }

    return [true, serverResponse]
},

そして、ファイルをバックエンド部分 (Laravel) に保存します。

if ($request->hasFile('photo1')) {
    $file = $request->file('photo1');
    if ($file->isValid()) {
        $fileName = rand(1000, 9999) . "." . $file->getClientOriginalExtension();

        //Put file on the server
        if (!empty($report)) {
            $report->attachFile($file, $fileName);
            $report->photo1 = $fileName;
            $response['status'] = $report->save();
        }
    }
}
于 2016-08-11T15:00:44.243 に答える