Add files via upload
This commit is contained in:
151
z_daisy/route/upload.php
Normal file
151
z_daisy/route/upload.php
Normal file
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
!defined('DEBUG') AND exit('Access Denied.');
|
||||
echo $user['uid'];
|
||||
|
||||
|
||||
$datetime = date('Ym',time());
|
||||
$targetDir = '../upload';
|
||||
$uploadDir = '../../upload/attach/'.$datetime;
|
||||
|
||||
$cleanupTargetDir = true;
|
||||
|
||||
|
||||
if (!file_exists($targetDir)) {
|
||||
@mkdir($targetDir);
|
||||
}
|
||||
|
||||
if (!file_exists($uploadDir)) {
|
||||
@mkdir($uploadDir);
|
||||
}
|
||||
|
||||
if (isset($_REQUEST["name"])) {
|
||||
$fileName = $_REQUEST["name"];
|
||||
} elseif (!empty($_FILES)) {
|
||||
$fileName = $_FILES["file"]["name"];
|
||||
} else {
|
||||
$fileName = uniqid("file_");
|
||||
}
|
||||
// xxxxx
|
||||
|
||||
|
||||
$typea = substr($fileName, strrpos($fileName, '.') + 1);
|
||||
//过滤中文名图片
|
||||
|
||||
|
||||
echo "<br>";
|
||||
echo $user['uid'];
|
||||
echo "<br>";
|
||||
echo xn_rand(15) ;
|
||||
echo "<br>";
|
||||
$n=3;
|
||||
//function () {
|
||||
|
||||
$str = '0123456789abcdefghijklmnopqrstuvwxyz';
|
||||
$len = strlen($str);
|
||||
$return = '';
|
||||
for($i=0; $i<$n; $i++) {
|
||||
$r = xn_rand(1, $len);
|
||||
$return = $str[$r - 1];
|
||||
}
|
||||
return $return;
|
||||
//}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
$fileName = $uid.'_'.xn_rand(15).".".$typea;
|
||||
|
||||
$fileName = iconv('UTF-8', 'GB2312', $fileName);
|
||||
$filePath = $targetDir . DIRECTORY_SEPARATOR . $fileName;
|
||||
$uploadPath = $uploadDir . DIRECTORY_SEPARATOR . $fileName;
|
||||
|
||||
|
||||
$imgUrl= $uploadDir."/".$fileName;
|
||||
echo str_replace("../../","",$imgUrl);
|
||||
|
||||
$chunk = isset($_REQUEST["chunk"]) ? intval($_REQUEST["chunk"]) : 0;
|
||||
$chunks = isset($_REQUEST["chunks"]) ? intval($_REQUEST["chunks"]) : 1;
|
||||
|
||||
|
||||
|
||||
if ($cleanupTargetDir) {
|
||||
if (!is_dir($targetDir) || !$dir = opendir($targetDir)) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}');
|
||||
}
|
||||
|
||||
while (($file = readdir($dir)) !== false) {
|
||||
$tmpfilePath = $targetDir . DIRECTORY_SEPARATOR . $file;
|
||||
|
||||
if ($tmpfilePath == "{$filePath}_{$chunk}.part" || $tmpfilePath == "{$filePath}_{$chunk}.parttmp") {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/\.(part|parttmp)$/', $file) && (@filemtime($tmpfilePath) < time() - $maxFileAge)) {
|
||||
@unlink($tmpfilePath);
|
||||
}
|
||||
}
|
||||
closedir($dir);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!$out = @fopen("{$filePath}_{$chunk}.parttmp", "wb")) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
|
||||
}
|
||||
|
||||
if (!empty($_FILES)) {
|
||||
if ($_FILES["file"]["error"] || !is_uploaded_file($_FILES["file"]["tmp_name"])) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}');
|
||||
}
|
||||
|
||||
if (!$in = @fopen($_FILES["file"]["tmp_name"], "rb")) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
|
||||
}
|
||||
} else {
|
||||
if (!$in = @fopen("php://input", "rb")) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
|
||||
}
|
||||
}
|
||||
|
||||
while ($buff = fread($in, 4096)) {
|
||||
fwrite($out, $buff);
|
||||
}
|
||||
|
||||
@fclose($out);
|
||||
@fclose($in);
|
||||
|
||||
rename("{$filePath}_{$chunk}.parttmp", "{$filePath}_{$chunk}.part");
|
||||
|
||||
$index = 0;
|
||||
$done = true;
|
||||
for( $index = 0; $index < $chunks; $index++ ) {
|
||||
if ( !file_exists("{$filePath}_{$index}.part") ) {
|
||||
$done = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( $done ) {
|
||||
if (!$out = @fopen($uploadPath, "wb")) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
|
||||
}
|
||||
|
||||
if ( flock($out, LOCK_EX) ) {
|
||||
for( $index = 0; $index < $chunks; $index++ ) {
|
||||
if (!$in = @fopen("{$filePath}_{$index}.part", "rb")) {
|
||||
break;
|
||||
}
|
||||
|
||||
while ($buff = fread($in, 4096)) {
|
||||
fwrite($out, $buff);
|
||||
}
|
||||
|
||||
@fclose($in);
|
||||
@unlink("{$filePath}_{$index}.part");
|
||||
}
|
||||
|
||||
flock($out, LOCK_UN);
|
||||
}
|
||||
@fclose($out);
|
||||
}
|
||||
|
||||
*/
|
Reference in New Issue
Block a user