<div class="warp">
<input type="file" id="file" accept="image/*" onchange="upimg(this)" />
</div>
<img src="" />
<script>
//上傳圖片方法
function upimg(obj){
var fileData = obj.files[0];//這是我們上傳的文件
console.log(fileData)
var formData = new FormData();
// 服務(wù)端要求參數(shù)是 pic1
formData.append('image',fileData);
$.ajax({
url:"{:url('user/upmemberphoto')}",
type:'post',
data:formData,
cache: false, //上傳文件不需要緩存
processData: false, // 告訴jQuery不要去處理發(fā)送的數(shù)據(jù)
contentType: false, // 告訴jQuery不要去設(shè)置Content-Type請求頭
success:function(data){
console.log(data);
// 設(shè)置圖片預(yù)覽功能
$('.head-img').attr('src',data.picAddr);
}
})
}
</script>
thinkphp壓縮圖片插件官方地址
使用Composer安裝ThinkPHP5的圖像處理類庫:
composer require topthink/think-image文章來源:http://www.zghlxwxcb.cn/news/detail-728985.html
//上傳會員照片接口
public function upmemberphoto(){
// 獲取上傳文件
$file = request()->file('image');
$url=ROOT_PATH.'/public/uploads/member';
// 移動到本地服務(wù)器==這個是保存原圖
$info = $file->move($url);
if ($info) {
$tempstr=$info->getSaveName();
$tempstr=str_replace("\\","/",$tempstr);
$imgurl=$url.'/'.$tempstr;
// 按照原圖的比例生成一個最大為320*320的縮略圖并保存為thumb.png==這個是壓縮后保存
$image = \think\Image::open($imgurl);
$image->thumb(320,320)->save($imgurl);
return ['code' => 200, 'message' =>'上傳成功','data'=>'/uploads/member/'.$tempstr];
} else {
// 文件上傳失敗
return ['code' => 400, 'message' => '上傳失敗'];
}
}
另外一種方法,傳遞base64圖片,提交圖片數(shù)據(jù)的字符串文章來源地址http://www.zghlxwxcb.cn/news/detail-728985.html
<img id="memberHeadimg" src="" alt=""/>
<input type="file" id="imgopipt" accept="image/*" onchange="getBase64(event)" />
<input type="hidden" id="photo" name="photo"/>
//上傳圖片獲取base64
function getBase64(e){
// 選擇的文件
let file = e.target.files[0];
console.log(file.name) // 文件名稱,有需求可處理
console.log(file.type) // 文件類型,有需求可處理
// 判斷文件是否讀取完畢,讀取完畢后執(zhí)行
if (window.FileReader) {
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(e) {
let base64String = e.target.result;
// 此處可對該base64進(jìn)行獲取賦值傳入后端
console.log("bese64編碼:", base64String);
$("#photo").val(base64String)
$("#memberHeadimg").attr('src',base64String)
}
}
}
到了這里,關(guān)于thinkphp5實(shí)現(xiàn)ajax圖片上傳,壓縮保存到服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!