| @@ -120,31 +120,34 @@ if ($dopost != 'save') { | |||
| $albumsArr = json_decode(stripslashes($albums), true); | |||
| for ($i = 0; $i <= count($albumsArr) - 1; $i++) { | |||
| $album = $albumsArr[$i]; | |||
| $data = explode(',', $album['img']); | |||
| $ext = ".png"; | |||
| if (strpos($data[0], "data:image/jpeg") === 0){ | |||
| $ext = ".jpg"; | |||
| } elseif (strpos($data[0], "data:image/gif") === 0) { | |||
| $ext = ".gif"; | |||
| } elseif (strpos($data[0], "data:image/webp") === 0) { | |||
| $ext = ".webp"; | |||
| } elseif (strpos($data[0], "data:image/bmp") === 0) { | |||
| $ext = ".bmp"; | |||
| if (strpos($data[0], "data:image") > 0) { | |||
| $data = explode(',', $album['img']); | |||
| $ext = ".png"; | |||
| if (strpos($data[0], "data:image/jpeg") === 0){ | |||
| $ext = ".jpg"; | |||
| } elseif (strpos($data[0], "data:image/gif") === 0) { | |||
| $ext = ".gif"; | |||
| } elseif (strpos($data[0], "data:image/webp") === 0) { | |||
| $ext = ".webp"; | |||
| } elseif (strpos($data[0], "data:image/bmp") === 0) { | |||
| $ext = ".bmp"; | |||
| } | |||
| $ntime = time(); | |||
| $savepath = $cfg_image_dir.'/'.MyDate($cfg_addon_savetype, $ntime); | |||
| CreateDir($savepath); | |||
| $fullUrl = $savepath.'/'.dd2char(MyDate('mdHis', $ntime).$cuserLogin->getUserID().mt_rand(1000, 9999)); | |||
| $fullUrl = $fullUrl.$ext; | |||
| file_put_contents($cfg_basedir.$fullUrl, base64_decode($data[1])); | |||
| $info = ''; | |||
| $imginfos = GetImageSize($cfg_basedir.$fullUrl, $info); | |||
| $v = $fullUrl; | |||
| } else { | |||
| $v = $album['img']; | |||
| $info = ''; | |||
| $imginfos = GetImageSize($cfg_basedir.$v, $info); | |||
| } | |||
| $ntime = time(); | |||
| $savepath = $cfg_image_dir.'/'.MyDate($cfg_addon_savetype, $ntime); | |||
| CreateDir($savepath); | |||
| $fullUrl = $savepath.'/'.dd2char(MyDate('mdHis', $ntime).$cuserLogin->getUserID().mt_rand(1000, 9999)); | |||
| $fullUrl = $fullUrl.$ext; | |||
| file_put_contents($cfg_basedir.$fullUrl, base64_decode($data[1])); | |||
| $info = ''; | |||
| $imginfos = GetImageSize($cfg_basedir.$fullUrl, $info); | |||
| $v = $fullUrl; | |||
| $imginfo = !empty($album['txt']) ? $album['txt'] : ''; | |||
| $imgurls .= "{dede:img ddimg='$v' text='$imginfo' width='".$imginfos[0]."' height='".$imginfos[1]."'} $v {/dede:img}\r\n"; | |||
| if ($ddisfirst == 1 && $litpic == '' && !empty($fullUrl)) { | |||
| $litpic = $fullUrl; | |||
| } | |||
| } | |||
| } | |||
| $imgurls = addslashes($imgurls); | |||
| @@ -191,29 +191,34 @@ if ($dopost != 'save') { | |||
| } | |||
| if ($albums !== "") { | |||
| $albumsArr = json_decode(stripslashes($albums), true); | |||
| //var_dump($albumsArr);exit; | |||
| for ($i = 0; $i <= count($albumsArr) - 1; $i++) { | |||
| $album = $albumsArr[$i]; | |||
| $data = explode(',', $album['img']); | |||
| $ext = ".png"; | |||
| if (strpos($data[0], "data:image/jpeg") === 0){ | |||
| $ext = ".jpg"; | |||
| } elseif (strpos($data[0], "data:image/gif") === 0) { | |||
| $ext = ".gif"; | |||
| } elseif (strpos($data[0], "data:image/webp") === 0) { | |||
| $ext = ".webp"; | |||
| } elseif (strpos($data[0], "data:image/bmp") === 0) { | |||
| $ext = ".bmp"; | |||
| if (strpos($data[0], "data:image") > 0) { | |||
| $data = explode(',', $album['img']); | |||
| $ext = ".png"; | |||
| if (strpos($data[0], "data:image/jpeg") === 0){ | |||
| $ext = ".jpg"; | |||
| } elseif (strpos($data[0], "data:image/gif") === 0) { | |||
| $ext = ".gif"; | |||
| } elseif (strpos($data[0], "data:image/webp") === 0) { | |||
| $ext = ".webp"; | |||
| } elseif (strpos($data[0], "data:image/bmp") === 0) { | |||
| $ext = ".bmp"; | |||
| } | |||
| $ntime = time(); | |||
| $savepath = $cfg_image_dir.'/'.MyDate($cfg_addon_savetype, $ntime); | |||
| CreateDir($savepath); | |||
| $fullUrl = $savepath.'/'.dd2char(MyDate('mdHis', $ntime).$cuserLogin->getUserID().mt_rand(1000, 9999)); | |||
| $fullUrl = $fullUrl.$ext; | |||
| file_put_contents($cfg_basedir.$fullUrl, base64_decode($data[1])); | |||
| $info = ''; | |||
| $imginfos = GetImageSize($cfg_basedir.$fullUrl, $info); | |||
| $v = $fullUrl; | |||
| } else { | |||
| $v = $album['img']; | |||
| $info = ''; | |||
| $imginfos = GetImageSize($cfg_basedir.$v, $info); | |||
| } | |||
| $ntime = time(); | |||
| $savepath = $cfg_image_dir.'/'.MyDate($cfg_addon_savetype, $ntime); | |||
| CreateDir($savepath); | |||
| $fullUrl = $savepath.'/'.dd2char(MyDate('mdHis', $ntime).$cuserLogin->getUserID().mt_rand(1000, 9999)); | |||
| $fullUrl = $fullUrl.$ext; | |||
| file_put_contents($cfg_basedir.$fullUrl, base64_decode($data[1])); | |||
| $info = ''; | |||
| $imginfos = GetImageSize($cfg_basedir.$fullUrl, $info); | |||
| $v = $fullUrl; | |||
| $imginfo = !empty($album['txt']) ? $album['txt'] : ''; | |||
| $imgurls .= "{dede:img ddimg='$v' text='$imginfo' width='".$imginfos[0]."' height='".$imginfos[1]."'} $v {/dede:img}\r\n"; | |||
| } | |||
| @@ -15,7 +15,7 @@ require_once(DEDEADMIN.'/../system/common.inc.php'); | |||
| require_once(DEDEINC.'/userlogin.class.php'); | |||
| AjaxHead(); | |||
| helper('cache'); | |||
| $action = isset($action) && in_array($action, array('is_need_check_code', 'has_new_version', 'get_changed_files', 'update_backup', 'get_update_versions', 'update')) ? $action : ''; | |||
| $action = isset($action) && in_array($action, array('is_need_check_code', 'has_new_version', 'get_changed_files', 'update_backup', 'get_update_versions', 'update', 'upload_image')) ? $action : ''; | |||
| $curDir = dirname(GetCurUrl()); //当前目录 | |||
| /** | |||
| * 登录鉴权 | |||
| @@ -317,5 +317,57 @@ if ($action === 'is_need_check_code') { | |||
| ), | |||
| )); | |||
| exit; | |||
| } else if($action === 'upload_image'){ | |||
| checkLogin(); | |||
| $imgfile_name = $_FILES["file"]['name']; | |||
| $activepath = $cfg_image_dir; | |||
| $allowedTypes = array("image/pjpeg", "image/jpeg", "image/gif", "image/png", "image/xpng", "image/wbmp", "image/webp"); | |||
| $uploadedFile = $_FILES['file']['tmp_name']; | |||
| $fileType = mime_content_type($uploadedFile); | |||
| $imgSize = getimagesize($uploadedFile); | |||
| if (!in_array($fileType, $allowedTypes) || !$imgSize) { | |||
| echo json_encode(array( | |||
| "code" => -1, | |||
| "msg" => "仅支持图片格式文件", | |||
| "data" => null, | |||
| )); | |||
| exit; | |||
| } | |||
| $nowtme = time(); | |||
| $mdir = MyDate($cfg_addon_savetype, $nowtme); | |||
| if (!is_dir($cfg_basedir.$activepath."/$mdir")) { | |||
| MkdirAll($cfg_basedir.$activepath."/$mdir", $cfg_dir_purview); | |||
| CloseFtp(); | |||
| } | |||
| $cuserLogin = new userLogin(); | |||
| $iseditor = isset($iseditor)? intval($iseditor) : 0; | |||
| $filename_name = $cuserLogin->getUserID().'-'.dd2char(MyDate("ymdHis", $nowtme).mt_rand(100, 999)); | |||
| $filename = $mdir.'/'.$filename_name; | |||
| $fs = explode('.', $imgfile_name); | |||
| $filename = $filename.'.'.$fs[count($fs) - 1]; | |||
| $filename_name = $filename_name.'.'.$fs[count($fs) - 1]; | |||
| $fullfilename = $cfg_basedir.$activepath."/".$filename; | |||
| move_uploaded_file($_FILES["file"]["tmp_name"], $fullfilename) or die(json_encode(array( | |||
| "code" => -1, | |||
| "msg" => "上传失败", | |||
| "data" => null, | |||
| ))); | |||
| $info = ''; | |||
| $sizes[0] = 0; | |||
| $sizes[1] = 0; | |||
| $sizes = getimagesize($fullfilename, $info); | |||
| $imgwidthValue = $sizes[0]; | |||
| $imgheightValue = $sizes[1]; | |||
| $imgsize = filesize($fullfilename); | |||
| $inquery = "INSERT INTO `#@__uploads` (arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid) VALUES ('0','$filename','".$activepath."/".$filename."','1','$imgwidthValue','$imgheightValue','0','{$imgsize}','{$nowtme}','".$cuserLogin->getUserID()."'); "; | |||
| $dsql->ExecuteNoneQuery($inquery); | |||
| $fid = $dsql->GetLastID(); | |||
| AddMyAddon($fid, $activepath.'/'.$filename); | |||
| echo json_encode(array( | |||
| "code" => 0, | |||
| "msg" => "上传成功", | |||
| "data" => $activepath."/".$filename, | |||
| )); | |||
| } | |||
| ?> | |||
| @@ -29,12 +29,13 @@ if ($dopost == 'add') { | |||
| exit(); | |||
| } | |||
| $pfd = "pwd"; | |||
| $mpwd = md5($pwd); | |||
| $pwd = substr(md5($pwd), 5, 20); | |||
| if (function_exists('password_hash')) { | |||
| $pfd = "pwd_new"; | |||
| $mpwd = password_hash($pwd, PASSWORD_BCRYPT); | |||
| $pwd = password_hash($pwd, PASSWORD_BCRYPT); | |||
| } else { | |||
| $mpwd = md5($pwd); | |||
| $pwd = substr(md5($pwd), 5, 20); | |||
| } | |||
| $typeid = join(',', $typeids); | |||
| @@ -26,28 +26,6 @@ | |||
| var swfu = null; | |||
| var vcc = 0; | |||
| var albums = []; | |||
| $(document).ready(function () { | |||
| //添加图片 | |||
| $("#iptAlbumImages").change(function (event) { | |||
| var files = event.target.files; | |||
| for (var i = 0, f; f = files[i]; i++) { | |||
| //如果不是图片忽略 | |||
| if (!f.type.match('image.*')) { | |||
| continue; | |||
| } | |||
| //图片渲染到浏览器 | |||
| var reader = new FileReader(); | |||
| reader.onload = (function (theFile) { | |||
| return function (e) { | |||
| litpicImgSrc = e.target.result; | |||
| addImage(litpicImgSrc, 0); | |||
| }; | |||
| })(f); | |||
| reader.readAsDataURL(f); | |||
| } | |||
| $("#iptAlbumImages").val(""); | |||
| }); | |||
| }); | |||
| </script> | |||
| </head> | |||
| <body> | |||
| @@ -415,5 +393,32 @@ | |||
| </table> | |||
| </form> | |||
| <script>InitPage();</script> | |||
| <script> | |||
| $("#iptAlbumImages").change(function(val){ | |||
| for (let i = 0; i < val.target.files.length; i++) { | |||
| const f = val.target.files[i]; | |||
| var formData = new FormData(); | |||
| var fileData = f; | |||
| formData.append('file', fileData); | |||
| $.ajax({ | |||
| url: 'api.php?action=upload_image', | |||
| type: 'POST', | |||
| data: formData, | |||
| processData: false, | |||
| contentType: false, | |||
| success: function (result) { | |||
| if (result.code === 0) { | |||
| // console.log(result) | |||
| addImage(result.data, 0); | |||
| $("#iptAlbumImages").val(''); | |||
| } | |||
| }, | |||
| error: function (xhr, status, error) { | |||
| alert(error); //处理上传失败后的回调 | |||
| } | |||
| }); | |||
| } | |||
| }) | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -21,33 +21,11 @@ | |||
| <script src="js/album.js"></script> | |||
| <script src="js/handlers.js"></script> | |||
| <script src="../static/web/js/cropper.min.js"></script> | |||
| <style>table{border-collapse:inherit}</style> | |||
| <style>table{border-collapse:inherit}input[type=file]{width: 100%;}</style> | |||
| <script> | |||
| var swfu = null; | |||
| var vcc = 0; | |||
| var albums = []; | |||
| $(document).ready(function () { | |||
| //添加图片 | |||
| $("#iptAlbumImages").change(function (event) { | |||
| var files = event.target.files; | |||
| for (var i = 0, f; f = files[i]; i++) { | |||
| //如果不是图片忽略 | |||
| if (!f.type.match('image.*')) { | |||
| continue; | |||
| } | |||
| //图片渲染到浏览器 | |||
| var reader = new FileReader(); | |||
| reader.onload = (function (theFile) { | |||
| return function (e) { | |||
| litpicImgSrc = e.target.result; | |||
| addImage(litpicImgSrc, 0); | |||
| }; | |||
| })(f); | |||
| reader.readAsDataURL(f); | |||
| } | |||
| $("#iptAlbumImages").val(""); | |||
| }); | |||
| }); | |||
| </script> | |||
| </head> | |||
| <body> | |||
| @@ -308,15 +286,16 @@ | |||
| if ($ctag->GetAtt('ddimg') != $bigimg && $ctag->GetAtt('ddimg')!='') { | |||
| $litimg = $ctag->GetAtt('ddimg'); | |||
| } else { | |||
| $litimg = 'swfupload.php?dopost=ddimg&img='.$bigimg; | |||
| if (preg_match("#^(http|https):\/\/#i", $bigimg)) $litimg = $bigimg; | |||
| else $litimg = 'swfupload.php?dopost=ddimg&img='.$bigimg; | |||
| } | |||
| $fhtml = ''; | |||
| $fhtml .= "<div class='albCt albEdit' id='albold{$j}'>"; | |||
| $fhtml .= "<input type='hidden' name='imgurl{$j}' value='{$bigimg}'>"; | |||
| $fhtml .= "<input type='hidden' name='imgddurl{$j}' value='{$litimg}'>"; | |||
| $fhtml .= "<img src='{$litimg}'>"; | |||
| $fhtml .= "<img src='{$litimg}' id='lit{$j}'>"; | |||
| $fhtml .= "<div class='my-2'>标题:<input type='text' name='imgmsg{$j}' value='".$ctag->GetAtt('text')."' class='admin-input-sm'></div>"; | |||
| $fhtml .= "<div><span class='btn btn-success btn-sm file-relative'>更换<input type='file' name='imgfile{$j}' class='file-absolute'></span><a href=\"javascript:delAlbPicOld('$bigimg',$j)\" class=\"btn btn-success btn-sm\">删除</a></div>"; | |||
| $fhtml .= "<div><span class='btn btn-success btn-sm file-relative'>更换<input for='item{$j}' type='file' name='imgfile{$j}' class='file-absolute btnEdit'></span><a href=\"javascript:delAlbPicOld('$bigimg',$j)\" class=\"btn btn-success btn-sm\">删除</a></div>"; | |||
| $fhtml .= "</div>"; | |||
| echo $fhtml; | |||
| $j++; | |||
| @@ -463,5 +442,55 @@ | |||
| </table> | |||
| </form> | |||
| <script>InitPage();</script> | |||
| <script> | |||
| $(".btnEdit").change(function(val){ | |||
| var formData = new FormData(); | |||
| var fileData = val.target.files[0]; | |||
| formData.append('file', fileData); | |||
| $.ajax({ | |||
| url: 'api.php?action=upload_image', | |||
| type: 'POST', | |||
| data: formData, | |||
| processData: false, | |||
| contentType: false, | |||
| success: function (result) { | |||
| if (result.code === 0) { | |||
| let idx = val.target.getAttribute("for").replace("item",""); | |||
| $(`input[name='imgurl${idx}']`).val(result.data); | |||
| $(`input[name='imgddurl${idx}']`).val(result.data); | |||
| $("#lit"+idx).attr('src', result.data); | |||
| } | |||
| }, | |||
| error: function (xhr, status, error) { | |||
| alert(error); //处理上传失败后的回调 | |||
| } | |||
| }); | |||
| }) | |||
| $("#iptAlbumImages").change(function(val){ | |||
| for (let i = 0; i < val.target.files.length; i++) { | |||
| const f = val.target.files[i]; | |||
| var formData = new FormData(); | |||
| var fileData = f; | |||
| formData.append('file', fileData); | |||
| $.ajax({ | |||
| url: 'api.php?action=upload_image', | |||
| type: 'POST', | |||
| data: formData, | |||
| processData: false, | |||
| contentType: false, | |||
| success: function (result) { | |||
| if (result.code === 0) { | |||
| // console.log(result) | |||
| addImage(result.data, 0); | |||
| $("#iptAlbumImages").val(''); | |||
| } | |||
| }, | |||
| error: function (xhr, status, error) { | |||
| alert(error); //处理上传失败后的回调 | |||
| } | |||
| }); | |||
| } | |||
| }) | |||
| </script> | |||
| </body> | |||
| </html> | |||