PHP入门
、
PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。PHP 是免费的,并且使用广泛。学习服务器端脚本语言首选PHP。
PHP 文件打开/读取/读取/创建/写入
下面这个脚本摘自于plupload-2.13源码中的demo。
<?php
/**
- upload.php
- Copyright 2013, Moxiecode Systems AB
- Released under GPL License.
- License: http://www.plupload.com/license
- Contributing: http://www.plupload.com/contributing
*/
!! IMPORTANT:
!! this file is just an example, it doesn't incorporate any security checks and
!! is not recommended to be used in production environment as it is. Be sure to
!! revise it and customize to your needs.
// Make sure file is not cached (as it happens for example on iOS devices)
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
/*
// Support CORS
header("Access-Control-Allow-Origin: *");
// other CORS headers if any...
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
exit; // finish preflight CORS requests here
}
*/
// 5 minutes execution time
@set_time_limit(5 * 60);
// Uncomment this one to fake upload time
// usleep(5000);
// Settings
targetDir = 'uploads';
maxFileAge = 5 * 3600; // Temp file age in seconds
/*
服务器端接受plupload上传的文件,保存在临时目录的最长时间是$maxFileAge;时间到这个文件自动删除;
*/
// Create target dir
if (!file_exists(targetDir);
}
// Get a file name
if (isset(fileName = _FILES)) {
FILES["file"]["name"];
} else {
$fileName = uniqid("file");
}
targetDir . DIRECTORY_SEPARATOR . $fileName;
// Chunking might be enabled
_REQUEST["chunk"]) ? intval(chunks = isset(_REQUEST["chunks"]) : 0;
// Remove old temp files
if (targetDir) || !targetDir)) {
die('{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}');
}
while ((dir)) !== false) {
targetDir . DIRECTORY_SEPARATOR . $file;
// If temp file is current file proceed to the next
if (filePath}.part") {
continue;
}
// Remove temp file if it is older than the max age and is not the current file
if (preg_match('/.partfile) && (filemtime(maxFileAge)) {
@unlink(dir);
}
// Open temp file
if (!filePath}.part", $chunks ? "ab" : "wb")) {
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
}
if (!empty(_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"}');
}
// Read binary input stream and append it to temp file
if (!_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 (in, 4096)) {
fwrite(buff);
}
@fclose(in);
// Check if file has been uploaded
if (!chunk == filePath}.part", $filePath);
}
// Return Success JSON-RPC response
die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}');