婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP常用函數之base64圖片上傳功能詳解

PHP常用函數之base64圖片上傳功能詳解

熱門標簽:天津營銷電話機器人加盟代理 電銷招聘機器人 事業單位如何百度地圖標注 太原極信防封電銷卡 格陵蘭島地圖標注 熱線電話機器人 福泉電話機器人 南寧crm外呼系統平臺 地圖標注入哪個科目

本文實例講述了PHP常用函數之base64圖片上傳功能。分享給大家供大家參考,具體如下:

HTML頁面代碼:

html>
head>
meta charset="utf-8">
/head>
body>
img id="articleImg" width="180" height="100">
input type="file" value="上傳" id="articleImgBtn" />
script type="text/javascript" src = 'jquery-2.1.4.min.js'>/script>
script type="text/javascript">
$('#articleImgBtn').change(function(){
run(this, function (data) {
uploadImage(data);
});
});
function run(input_file, get_data) {
/*input_file:文件按鈕對象*/
/*get_data: 轉換成功后執行的方法*/
if (typeof (FileReader) === 'undefined') {
alert("抱歉,你的瀏覽器不支持 FileReader,不能將圖片轉換為Base64,請使用現代瀏覽器操作!");
} else {
try {
/*圖片轉Base64 核心代碼*/
var file = input_file.files[0];
//這里我們判斷下類型如果不是圖片就返回 去掉就可以上傳任意文件
if (!/image\/\w+/.test(file.type)) {
alert("請確保文件為圖像類型");
return false;
}
var reader = new FileReader();
reader.onload = function () {
get_data(this.result);
}
reader.readAsDataURL(file);
} catch (e) {
alert('圖片轉Base64出錯啦!' + e.toString())
}
}
}
function uploadImage(img) {
//判斷是否有選擇上傳文件
var imgPath = $("#articleImgBtn").val();
if (imgPath == "") {
alert("請選擇上傳圖片!");
return;
}
//判斷上傳文件的后綴名
var strExtension = imgPath.substr(imgPath.lastIndexOf('.') + 1);
if (strExtension != 'jpg'  strExtension != 'gif'
 strExtension != 'png'  strExtension != 'bmp') {
alert("請選擇圖片文件");
return;
}
$.ajax({
type: "POST",
url: 'http://localhost/123.php',
// data: {file: img.substr(img.indexOf(',') + 1)}, //視情況將base64的前面字符串data:image/png;base64,刪除
data: {file: img}, //視情況將base64的前面字符串data:image/png;base64,刪除
cache: false,
success: function(data) {
var return_info = JSON.parse(data);
if(return_info.status){
$("#articleImg").attr('src', return_info.path);
alert("上傳成功");
}else{
alert(return_infoerr_info);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("上傳失敗,請檢查網絡后重試");
}
});
}
/script>
/body>
/html>

PHP 處理代碼:

function upload_image($file_data){
$upload_result = array('status' => true, 'msg'=>'','err_info'=>'');
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file_data, $result)) {
//處理base64字符串
$img_base64 = str_replace($result[1], '', $file_data);
$img_base64 = str_replace('=', '', $img_base64);
$source_img = base64_decode($img_base64);
//判斷文件大小
$file_size =
//上傳目錄
$basedir = './img_test';
//后綴
$img_suffix = $result[2];//文件后綴
//文件名
// $filename = uniqid();//文件名
$filename = date('YmdHis',time());//文件名
//文件完整路徑
$filepath = $basedir . "/" . $filename . "." . $img_suffix;
//目錄若果不存在,則創建目錄
if(!is_dir($basedir)){
mkdir($basedir);
chmod($basedir,0777);
}
//上傳文件
try {
file_put_contents($filepath, $img_base64);
$filepath = substr($filepath, 1);
$upload_result = array('status' => true, 'msg'=>'上傳成功','err_info'=>'','path'=>$filepath);
return $upload_result;
} catch (Exception $e) {
$upload_result = array('status' => false, 'msg'=>'上傳失敗','err_info'=>$e->getMessage());
return $upload_result;
}
// if (file_put_contents($filepath, base64_decode(str_replace($result[1], '', $file_data)))) {
// //$size = getimagesize($filepath);
// $filepath = substr($filepath, 1);
// //$arr['filepath'] = $filepath;
// //$arr['size'] = $size[3];
// return $filepath;
// }else{
// return false;
// }
}else{
$upload_result = array('status' => false, 'msg'=>'上傳失敗','err_info'=>'請攜帶base64字符串的前綴');
return $upload_result;
}
}
$res = upload_image($file_data);
echo json_encode($res);

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php文件操作總結》、《PHP目錄操作技巧匯總》、《PHP常用遍歷算法與技巧總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《PHP網絡編程技巧總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP保存Base64圖片base64_decode的問題整理
  • PHP實現將base64編碼字符串轉換成圖片示例
  • php讀取和保存base64編碼的圖片內容
  • php實現base64圖片上傳方式實例代碼
  • php解析base64數據生成圖片的方法
  • php實現將base64格式圖片保存在指定目錄的方法
  • 利用PHP將圖片轉換成base64編碼的實現方法
  • php基于base64解碼圖片與加密圖片還原實例
  • PHP實現本地圖片轉base64格式并上傳

標簽:寶雞 佳木斯 金華 郴州 通化 自貢 香港 阿克蘇

巨人網絡通訊聲明:本文標題《PHP常用函數之base64圖片上傳功能詳解》,本文關鍵詞  PHP,常用,函數,之,base64,圖片,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP常用函數之base64圖片上傳功能詳解》相關的同類信息!
  • 本頁收集關于PHP常用函數之base64圖片上傳功能詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 马边| 察哈| 会同县| 三明市| 贵州省| 伊通| 晋城| 高密市| 方正县| 江油市| 资阳市| 恩平市| 大埔区| 新民市| 翁牛特旗| 九台市| 南陵县| 遵义县| 庄浪县| 三台县| 涡阳县| 雅安市| 吉木乃县| 陆川县| 八宿县| 团风县| 洛宁县| 灵川县| 阿巴嘎旗| 宁陕县| 会宁县| 大足县| 武川县| 固镇县| 吉林省| 武隆县| 宁国市| 临安市| 定州市| 比如县| 宁阳县|