0、前言
前段时间发现了一个HTML小游戏吃掉小鹿乃,于是就Fork项目魔改了一下,取名吃掉O泡。
原项目仓库:
https://github.com/arcxingye/EatKano/
由于有很多人找我定制这个小游戏,但是这样做效率很低,因为基本上只需要复制粘贴+改点击图片、按钮音效,其他的可以照抄。
因此我就准备开发类似Steam的创意工坊的软件,可以自定义以上项目,并一键生成。但是使用FTP上传文件并不安全,因此我找到了使用PHP上传文件的方法。
1、AI2源码
提示:推荐使用WxBit(https://vip.wxbit.com),拖入工作区即可导入代码!
2、PHP源码
2.1、配置
1 | <?php define('FILE_UPLOAD_TOKEN','Blog_Tsinbei_Com');//上传密钥 define('FILE_UPLOAD_PATH','./upload/');//上传文件存储目录 define('FILE_UPLOAD_MAXTIME','10');//上传文件超时时间,单位:秒 define('FILE_UPLOAD_TYPE','png,jpg,jpeg,gif,bmp,webp,json,mp3');//上传文件类型,支持图片、JSON、音频 |
2.2、上传
1 | <?php include('config.php'); isset($_POST['fileName'])?$upload_fileName = $_POST['fileName']:exit('缺少参数'); isset($_POST['fileBase64'])?$upload_fileBase64 = $_POST['fileBase64']:exit('缺少参数'); isset($_POST['fileType'])?$upload_fileType = $_POST['fileType']:exit('缺少参数'); isset($_POST['sign'])?$upload_sign = $_POST['sign']:exit('缺少参数'); isset($_POST['ts'])?$upload_ts = $_POST['ts']:exit('缺少参数'); //校验时间戳 $upload_ts-time()<3&&time()-$upload_ts<FILE_UPLOAD_MAXTIME?0:exit('请求超时');//根据实际情况调整 //校验签名 $upload_sign == md5($upload_fileName.$upload_fileBase64.$upload_fileType.FILE_UPLOAD_TOKEN.$upload_ts)?0:exit('签名校验失败'); //检查上传文件类型 $fileTypeArray = explode(',', strtolower(FILE_UPLOAD_TYPE)); in_array($upload_fileType,$fileTypeArray)?$fileType = $upload_fileType:exit('不支持的文件类型'); //储存文件 $fileID = uniqid('upload_'); file_exists(FILE_UPLOAD_PATH)?0:mkdir(FILE_UPLOAD_PATH); $fileName = FILE_UPLOAD_PATH.$fileID.'.'.$fileType; $myfile = fopen($fileName, "w") or die("Unable to open file!"); fwrite($myfile, base64_decode($upload_fileBase64)); fclose($myfile); //获得文件URL $protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ?"https://": "http://"; $url = $protocol . $_SERVER['HTTP_HOST'] . "/" . pathinfo($fileName)['dirname'] . "/" . pathinfo($fileName)['basename']; //返回信息 $time_consuming = time()-$upload_ts; echo "文件上传成功!链接:{$url} 耗时:{$time_consuming}秒"; |
3、下载
此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。
本下载服务由清北网盘提供技术支持!
鸣谢
参考文章:
Appinventor上传文件到php服务端(含源码)
https://www.amgl.work/archives/140/
App Inventor 2 上传文件到PHP服务端
评论