本示例可以在一个页面上传多张图片,节点可动态添加,提交数据时从节点中获取图片链接即可
html代码
<div class="col-sm-7" style="margin-top: 5px">
<!--上传成功后将链接显示在input中-->
<input type="text" autocomplete="off" value="" name="gimg" class="form-control tableinput gimg" placeholder="请上传规格图片">
<span class="help-block m-b-none img_process"></span>
</div>
<div class="col-sm-5">
<!--点击上传按钮-->
<button class="btn layui-btn" style="width: 70px;height: 30px;line-height: 30px;text-align: center;padding: 0;margin-top: 8px">图片上传</button>
<!--将上传按钮放置在button上方,设置为透明-->
<input type="file" class="test1" style="width: 70px;height: 30px;line-height: 30px;text-align: center;padding: 0;margin-top: 8px;position:absolute;top:0px;left:23px;opacity: 0"/>
</div>
js代码
$(document).on('change','.test1',function(e){
var formData = new FormData(); // 利用FormData实现图片上传
var input = $(this).parent().prev().find('input') //获取赋值的节点
var fiObj = e.target.files[0] // 用过files获取图片
formData.append('file',fiObj); // 给formData用append图片,如果有其他还需要传的参数也一样全部append到formData
$.ajax({
url: '{:url("admin/admin/uploads")}',
type: 'post',
processData : false,
contentType : false,
async:false,
data: formData, // 主要看这里,就直接把我们实例回来的formData传过去就行了。
success: function(data) {
input.val(data.name)
}
})
})
//tp6上传
public function uploads(){
$file = $this->request->file('file');
if(!Validate::fileSize($file,1024 * 1024 * 5)){
$this->error('图片过大');
}
if(!Validate::fileExt($file,'jpeg,jpg,png,gif')){
$this->error('图片格式错误');
}
$info = Filesystem::disk('public')->putFile(\utils\oss\OssService::setFilepath(),$file,'uniqid');
$url = \utils\oss\OssService::getAdminFileName(basename($info));
return json(['name'=>$url]);
}