0
你好,我試圖從AJAX使用FormData()方法上傳圖像到Laravel。我認爲我發送的文件很好,因爲如果我發送超過大小(2mb)的文件,服務器正在用驗證錯誤回答我,但是當我發送具有良好圖像屬性的文件時,它不保存它,我不知道爲什麼和我在控制檯中沒有收到任何錯誤,狀態碼是200 OK。上傳圖像AJAX - Laravel 5.2
我已經尋找另一個職位,但沒有工作:/
這是我的JS代碼的一部分:
$(document).ready(function(e) {
$("#uploadimage").on('submit', (function(e) {
e.preventDefault()
$('#mensaje').empty()
$('#loading').show()
var token = $('#token').val()
$.ajax({
url: '/admin/imagenes',
headers: {
"X-CSRF-TOKEN": token
},
type: 'POST',
data: ({
type: 'post',
formData: new FormData(this)
}),
contentType: false,
cache: false,
processData: false,
success: function(data) {
$('#loading').hide()
$('#message').html(data)
}
,這是我Laravel代碼:
public function store(Request $request) {
if ($request->file('file')) {
$file = $request->file('file');
$name = 'NacionGrita_' .time(). '.' . $file->getClientOriginalExtension();
$path = base_path(). '/imagenes/articulos';
$file->move($path, $name);
$imagen = new Imagen();
$imagen->url = $name;
$imagen->save();
return response()->json(
$file->toArray()
);
}
}
這我的刀片代碼:
{!!Form::open(['route' => 'admin.imagenes.store', 'id' => 'uploadimage', 'method' => 'POST', 'files' => true])!!}
<div class="form-group ">
{!!Form::label('file', 'Imagen principal')!!}
{!!Form::file('file', null, ['class' => 'form-control', 'id' => 'file','placeholder' => 'Ingrese el título del post', 'required'])!!}
</div>
<div class="form-group ">
{!!Form::submit('Agregar Artículo', ['class' => 'btn btn-primary submit', 'id' => 'upImg'])!!}
</div>
{!!Form::close()!!}
</div>
我希望任何人都可以幫助我。非常感謝。
嘗試這種方法..它正在工作..也就是說,在您從ajax發送數據之前,將您的圖像轉換爲Base64,然後您可以通過調用ajax傳遞該Base64代碼,然後在控制器上您可以將該代碼解碼爲正常image..and然後你可以保存它..試試吧......謝謝 –