【发布时间】:2016-10-25 13:23:21
【问题描述】:
我的 laravel ajax 应用程序出现问题,我无法通过 ajax POST 上传图像/文件。总是返回编号。
我觉得AJAX的问题,不用Ajax的上传效果很好
请在下面找到我上传图片的代码。
ajax :
$('form[name="photoedit"]').on('submit', function (e){
var res = $(this).attr('id');
var str = res;
var variable = str.substr(1);
e.preventDefault();
var pic = $('#u'+variable).val();
var mur_id = $('#mur_i'+variable).val();
$.ajax({
type: 'post',
dataType: 'json',
data: new FormData($("#p"+variable)[0], pic, mur_id),
contentType: false, .
cache: false,
processData: false,
success: function( data ) {
....
}
view :
{!! Form::open(array('url'=> '/01/mur', 'method'=>'POST', 'enctype'=>'multipart/form-data', 'id'=>'p'.$mur->id, 'name'=>'photoedit')) !!}
{{ Form::file('u'.$journal->id, ['class' => 'upload fileUpload', 'multiple'=>'multiple', 'name'=>'u'.$journal->id, 'id'=>'u'.$journal->id]) }}
{!! Form::hidden('edi_i'.$mur->id, $mur->id) !!}
{{ Form::hidden('mur_i'.$mur->id, $mur->id, array('id' => 'mur_i'.$mur->id)) }}
{!! Form::submit('Save', array('class'=>'btn ideng', 'id'=>'d'.mur>id, 'style'=>'border-bottom: 2px solid #2d9e36; border-radius: 0; font-size: 12px; padding: 3px 8px; float: right; background: #35b73f; color: #ffffff; margin: 10px 0 5px 0;')) !!}
{!!表单::close() !!}
controller :
if($request->hasFile('pic')){
if($request->ajax()){
$avatar=$request->file('pic');
$filename=time() . '.' . $avatar->getClientOriginalExtension();
Image::make($avatar)->resize(650,500)->save(storage_path('img/profil/'01'/mur/'. $filename));
$edi_id=Input::get('mur_id');
$user = \App\Mur::find($edi_id);
$user->image = $filename;
$user->save();
return \Response::json($user);
}
}else{
return 'No';
}
没有隐藏字段,它工作得很好。 经验:
数据:新的FormData($("#p"+variable)[0]),
【问题讨论】:
-
尝试
return Input::all()并检查控制器实际收到的内容 -
我在哪里添加 return Input::all() 在控制器中?
-
您可以在函数内的第一行返回它
标签: php jquery ajax image laravel