>

사진이 서버로 전송되지 않는 문제가 있습니다. 알았어 내 코드에 대해 말해 줄게 컨테이너 편집에 편집 모달을 추가하는 코드 jQuery가 있습니다. 아래 코드는 서버에서 편집 모달을 넣을 컨테이너 편집입니다

<div id="container-edit"></div>

그리고 코드 모달 편집 폼과 결과를 얻는 ajax를 호출했습니다.

<form method=post enctype="multipart/form-data" action=gotolinkedit>
    <input type=text name="example1" value="somevalue" />
    <input type=file name="picture" />
    <input type=submit name="btnSubmit" value="submit" />
</form>

그리고 제출하면 입력 example1이 입력을 수신하지만 입력 파일 사진에 업로드 사진이 표시되지 않습니다.

이 컨트롤러 코드

<?php
namespace App\Http\Controllers\FrontEnd\MarketPlace;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class ListOrderServices extends Controller
{
public function editServices(Request $request) {
    if ($request->file('picture') == null) {
        return dd($request->input('picture'));
      }
    }
}

그리고 반환 값은 null입니다.

이 문제를 해결하는 방법?

  • 답변 # 1

    public function editServices(Request $request) {
        if (!empty($request->file('picture'))) {
          dd($request->file('picture'));
          }
        }
    
    

  • 답변 # 2

    public function editServices(Request $request) {
    $file = $request->file('picture');
    if (!empty($file)) {
        dd($file);
      }
    }
    
    

  • 답변 # 3

    $(document.body).on('click', '.save-data-services', function(e) {
       $(this).parent().prev().children().submit();
       e.preventDefault();
    });
    $(".save-ads").on('submit', function(e) {
       e.preventDefault();
    });
    
    

    만 제출 bro.

  • 답변 # 4

    즉, 문제는 자바 스크립트에 있다는 것을 의미합니다. 보여줄 수 있습니까? FormData 객체를 사용하여 서버에 파일을 보내도록 조언 할 수 있습니다.

    var formData = new FormData;
       var files = input.eq(0)[0].files[0];// your file input element
       if (!files) {
           return;
       }
       formData.append("picture", files);
    $.ajax({
           url:urlUpload,
           data:formData, ...
    
    

    아주 깨끗하지는 않지만 시도해보십시오 :

    $("body").on('click', '.save-data-services', function () {
        var form = $(this).closest('form');
        var fileInput = form.find('input[name="picture"]');
        var formData = new FormData;
        var files = fileInput.eq(0)[0].files[0];
       if (!files) {
           return;
       }
       formData.append("file", files);
       formData.append("example1", form.find('input[name="example1"]').val());
       var urlUpload = form.attr('action');
       $.ajax({
           url:urlUpload,
           data:formData,
           type:"POST",
           contentType: false,
           processData: false,
           success: function(data){
                console.log(data);
           },
           error: function(obj,code)
           {
               console.log(obj,code);
           }
       });
       return false;
    
    

    });

  • 이전 java - Multichoice AlertDialog는 선택된 값을 문자열로 가져옵니다
  • 다음 ruby - ri에서 키워드 메소드 인수는 어디에 기록되어 있습니까?