ここに問題があります。私は自分のWebアプリケーションを開発しており、それをajaxを使ってAPIに接続したいと思っています。私はWebであるクライアント側で私のフォームからajaxを使って私のapiに画像を送信しようとしています。画像アップロードLaravel 5.3 ajaxを使用して
だから、ここに私のフォームは、クライアント側にあります..ここ
{{ Form::open(['enctype' => "multipart/form-data", 'id' => 'addplant', 'method' => 'POST', 'files' => true, 'class' => 'col s12']) }}
{{ csrf_field() }}
<div class="row" style="margin-top:10%;">
<div class="col s12 center">
<img class="circle" id="image_url" src=""></a>
{!! Form::file('image_url', array('id' => 'image', 'class' => 'form-control')) !!}
</div>
</div>
<div class="row">
<div class="input-field col s6">
{{ Form::text('herbal_name', null, array('id' => 'herbal_name', 'class' => 'form-control validate')) }}
{{ Form::label('herbal_name', 'Herbal Name') }}
</div>
<div class="input-field col s6">
{{ Form::text('scientific_name', null, array('id' => 'scientific_name', 'class' => 'form-control validate')) }}
{{ Form::label('scientific_name', 'Scientific Name') }}
</div>
</div>
{{ Form::submit('Add plant', array('class' => 'btn btn-primary right add')) }}
{{ Form::close() }}
は私のAJAXだ、まだクライアント側の
<script type="text/javascript">
$(".add").click(function() {
$.ajax({
url: 'http://127.0.0.1/identificare_api/public/api/plants',
data: new FormData($("#addplant")[0]),
type: "POST",
success: function(msg) {
console.log(msg);
},
error: function(){
alert('pangit');
}
});
});
</script>
EDIT:と私のAPIで、私はこの1つだけを持っています
return json_encode($request->file('image_url'));
私はここで何が欠けていますか?私は何かを忘れましたか?
UPDATE:私は@bfciorの答えを適用しようとしましたが、私はconsole.log(base64img)
しようとすると、それはこの非常に長い文字列を返しますし、それはもはやあなたが予想以上です。私は、これは問題がある場合は、完全にはよく分からないが、あなたが代わりに提出するのボタンを使用してすることになっていません
変更するときにまだ行くボタンに提出していません。とにかく、送信ボタンをクリックするとnullが返されます。 –
編集を確認してください。 –
あなたの指定したURLにあなたのajax呼び出しがアクセスできない可能性があります。 XAMPやHomesteadを使ってローカルでテストしていますか? – VenomRush