本帖最后由 pengxuanlan 于 2022-6-15 09:04 编辑
开发前景
主要是用于公司内部手机上的文件需要传送到电脑上,现在都是在电脑 上登录微信,然后用微信来传送文件,但是微信占的空间实在是大,经常把磁盘撑爆,导致一堆问题
!
phpqrcode下载地址:http://www.phpqrcode.com/uploads/phpqrcode.zip,解压后放到同目录下面
新增一个文件夹qrcode 用来存放生成的二维码
[PHP] 纯文本查看 复制代码 echo scerweima("http://******/index.php?sddm=". UrlEncode($sddm) ,$sddm); //此处放的是外网的二维码,URL编码后展示
这句需要把网址完善下,改成你自己的网址!
直接扫码可以进入上传页面,上传后自动会自动新增用户名的文件夹,点击查看文件,可以看到文件列表
<?php
$sddm = $_GET['sddm']; //由上级系统传入的一个标识,区分用户
//echo $sddm;
$desc ="可设定上传类型,上传大小限制,上传文件个数限制;<br>";
$desc.="JS前端判断上传类型,大小等,节约服务器资源;<br>";
$desc.="独立单文件不调用第三方插件,比如jquery.js,SWFUpload.swf,SWFUpload.js等;<br>";
$isup = ".csv|.txt|.jpg|.gif|.png|.rar|.zip|.doc|.xls|.xlsx|.mp3|.mp4"; //修改可上传格式
$lenx = 512000; //修改上传文件最大值,单位KB 500M
$lenf = 20; //修改上传文件个数限制,太多可能会导致手机或电脑奔溃
$updir = "./down/".$sddm."/";
if($_GET['bj']=='ck'){
echo "<h1>上传文件列表</h1>";
// print_r($updir);
// print_r($_GET['sddm']);
//print_r(scandir($updir));
$wjlb =scandir($updir);
$x =1;
for($i=0;$i<count($wjlb);$i++){
if($wjlb[$i]!="." and $wjlb[$i]!=".."){
echo $x."、<a href='?bj=xz&wjmc={$updir}{$wjlb[$i]}'>".$wjlb[$i]."</a><br>";
$x++;
}
}
echo "<br><br>此列表中的文件每天自动清除,不做保留!";
exit();
}
if($_GET['bj']=='xz'){
$filename = $_GET['wjmc'];
header("Content-Type: application/force-download");
header('Content-Disposition:attachment;filename=' .basename($filename));
header('Content-Length:' . filesize($filename));
ob_clean();
flush();
readfile($filename);
}
if($_GET["act"]=="up"){
function getext($file){
$info = pathinfo($file);
return $info['extension'];
}
//echo json_encode($_FILES["pics"]);
$filex = $_FILES['pics'];
if ($filex["error"] > 0){
$errs = $filex['error'];
echo "<b>错误{$errs}:</b>";
switch ($errs) {
case 1: echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值'; break;
case 2: echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值'; break;
case 3: echo '上传异常,文件只有部分被上传'; break;
case 4: echo '文件空白或者说没有文件被上传'; break;
case 6: echo '上传的临时文件丢失'; break;
case 7: echo '文件写入失败建议检查文件夹读写权限'; break;
}
}else{
$tape = getext($filex["name"]);
//if(!stristr("|{$isup}|","|.{$tape}|")){ exit("<b>上传失败:</b>文件名后缀[{$tape}]不支持!");}
if($filex["size"]>$lenx*1024){ exit("<b>上传失败:</b>文件大小超过允许值{$lenx}KB!");}
$fileName = $filex["name"];
if(!is_dir("./$updir/")) {
if(!mkdir("./$updir/", 0777, true)) {
exit("<span>转存失败:</span>创建文件夹失败!");
}
}
//exit("<span>上传成功:</span>更名为:".$fileName);
$fileName = mb_convert_encoding($fileName, "GBK", "UTF-8") ;
move_uploaded_file($filex["tmp_name"], "./$updir/".$fileName);
if (file_exists("./$updir/".$fileName)){
exit("<span>上传成功:</span>文件名称:".$fileName);
}else{
exit("<span>转存失败:</span>请检查文件夹读写权限!");
}
}
exit();
}
?>
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="GBK" />
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<title><?php echo $title; ?></title>
<meta name="author" content="yujianyue, admin@ewuyi.net">
<meta name="copyright" content="www.12391.net">
<link rel="stylesheet" href="../../layui/css/layui.css">
<script src="../../layui/layui.js"></script>
<script>
var $=function(node){
return document.getElementById(node);
}
function $(objId){
return document.getElementById(objId);
}
function GetRequest(Url,ia,GetFunction){
if(window.ActiveXObject){
var xpost = new ActiveXObject("Microsoft.XMLHTTP");
}else{
var xpost = new XMLHttpRequest();
}
xpost.onreadystatechange = function(){
if(xpost.readyState == 4){
if(xpost.status == 200){
GetFunction(xpost.responseText);
}else{
GetFunction(404);
}
}
}
//var sddm = document.getElementById("sddm1").value ;
var sddm = document.getElementById("sddm1").value;
xpost.open("post",'?act=up&sddm='+sddm+'&vi='+ia,true);
//xpost.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset-UTF-8");
xpost.upload.onprogress = function(evt) {
per = Math.floor((evt.loaded / evt.total) * 100) + "%";
$('per'+ia).style.width = per;
$('per'+ia).innerHTML = per+"";
}
xpost.send(Url);
}
window.onload = function () {
input = $("fielinput");
if (typeof (FileReader) === 'undefined') {
$("tips").innerHTML = "抱歉,请使用chrome,firefox等现代浏览器,国产浏览器请使用急速模式!";
input.setAttribute('disabled', 'disabled');
} else {
input.addEventListener('change', readFile, false);
}
}
function postFile(filea,ib,finame) {
console.log("files:"+ib,filea);
var SendUrl = new FormData();
SendUrl.append('pics',$('fielinput').files[ib]);
GetRequest(SendUrl,ib,function(GetText){
if(GetText == 404){
$("tips"+ib).innerHTML += "<br><b>上传失败:</b>通讯异常!";
}else{
$("tips"+ib).innerHTML += "<br>"+GetText;
}
});
}
function readFile() {
files = $("fielinput").files;
$("tips").innerHTML = "";
if(files.length><?php echo $lenf; ?>){
$("tips").innerHTML = "<b>全部未上传:</b>文件数超<?php echo $lenf; ?>个!";
return false;
}
for(ii=0; ii<files.length; ii++){
ia=ii;
finame = files[ia].name;
fisize = files[ia].size;
if (fisize>1) {
$("tips").innerHTML += "<div class=\"tips\"><div id=\"tips"+ia+"\"><span>["+ia+"]</span> "+finame+"</div><div class=\"per\" id=\"per"+ia+"\"></div></div>\r\n<a href='?bj=ck&sddm=<?php echo $sddm?>' class='layui-btn layui-btn-normal'>查看文件</a>";
/*
if (!/(<?php echo $isup; ?>)$/.test(finame)){
$("tips"+ia).innerHTML += "<br><b>未上传:</b>后缀格式不支持!";
continue;
}
*/
if (fisize><?php echo $lenx; ?>*1024) {
$("tips"+ia).innerHTML += "<br><b>未上传:</b>文件大小超<?php echo $lenx; ?>kB!";
continue;
}
filea = files[ia];
postFile(filea,ia,finame);
}
}
$("fielinput").value="";
}
</script>
<style type="text/css">
*{margin:0;padding:0;font-size:14px;line-height:150%;font-family:"microsoft yahei",SimHei;}
#tips,#file{width:70%;margin:10px auto;padding:8px;background:gray;}
.tips {margin:5px auto;width:calc(95%-12px);background:lightgray;}
.per {width:0;line-height:100%;background:lightgreen;text-align:center;display:block;}
b {color:red;font-size:18px;font-weight:bold;}
span {color:green;font-size:18px;font-weight:bold;}
</style>
</head>
<body>
<h1 style='font-size:30px;text-align:center'>文件中转 by pengxuanlan </h1>
<div id="file"><input type="file" id="fielinput" multiple="multiple" /></div>
<input type="text" id="sddm1" value='<?php echo $sddm?>' hidden/>
<div id="tips">
<b>操作说明:</b>点上边按钮选择要上传文件即可!<br>
<b>请使用手机扫码上传文件,上传后点击查看文件就可以下载到电脑上<br>
<?php
//这里使用phpqrcode生成二维码
function scerweima($url='',$sddm2){
require_once 'phpqrcode/phpqrcode.php';
$sddm=$sddm2;
$value = $url; //二维码内容
$errorCorrectionLevel = 'L'; //容错级别
$matrixPointSize = 6; //生成图片大小
//生成二维码图片
$filename = 'qrcode/'.$sddm.'.png';
QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
$QR = $filename; //已经生成的原始二维码图片文件
$QR = imagecreatefromstring(file_get_contents($QR));
//输出图片
// imagepng($QR, 'qrcode.png');
// imagedestroy($QR);
}
$sddm = $_GET['sddm'];
echo scerweima("http://******/index.php?sddm=". UrlEncode($sddm) ,$sddm); //此处放的是外网的二维码,URL编码后展示
echo "<img src='qrcode/".$sddm.".png' >";
?>
<h1><?php echo $title; ?></h1>
<?php //echo $desc; ?>
<br><a href='?bj=ck&sddm=<?php echo $sddm?>' class="layui-btn layui-btn-normal">查看文件</a>
</div>
<?php //print_r(scandir($updir."/".$sddm))?>
</body>
</html>
|