Загрузить изображение в базу данных с JavaScript в Laravel - PullRequest
0 голосов
/ 04 июля 2018

У меня есть список форм такого кода и мне нужно сохранить данные с помощью js, мой код в блейд-файле находится здесь:

<input type='file' id="Pre_File">
<input type="text" id="Product_Name" class="profile-input">
<textarea type="text" id="Product_Desc" class="profile-input"></textarea>
 <div id="ProSave">
   <div class="card-footer">
      <button type="submit">Save</button>
   </div>
 </div>

И jquery, который я использовал для сохранения Product_Name и Product_Desc, находится здесь:

<script>
  $(document).ready(function (event) {
    $('#ProSave').click(function (event) {
        var Product_Name = $('#Product_Name').val();
        var Product_Desc = $('#Product_Desc').val();
        $.post('/Product/Free/Save', {
                'Product_Name': Product_Name,
                'Product_Desc': Product_Desc,
                '_token': $('input[name=_token]').val()
     });
   });
</script>

И контроллер имеет этот код:

public function Add(Request $request){
    $product = new Product;
    $product->product_name = $request->Product_Name;
    $product->product_desc = $request->Product_Desc;
    $product->save();
}

Как я могу получить входной файл и переместить папку с файлами в общий доступ и сохранить в базе данных?

1 Ответ

0 голосов
/ 04 июля 2018

Вы не можете отправить файл, используя традиционный подход к записи ajax, для этого вы должны использовать formData объект, подобный:

var variable1 = $("#elemId").val();
var fileData  = $('#province_upload_image').prop('files')[0];

// Create form data object and append the values into it
var formData = new FormData();
formData.append('fileData', fileData);
formData.append('variable1', variable1);
// add as many variables you want

$.ajax({
url: $('meta[name="route"]').attr('content') + '/your_route',
method: 'post',
data: formData,
contentType : false,
processData : false,
headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response){

});

Контроллер:

$fileData   = $request->file('fileData');
$variable1  = $request->input('variable1');
// Use it accordingly
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...