PHP原始文件上传代码
###
前端
###
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="myFile" />
<br><br>
<input type="submit" value="上传文件" />
</form>
###
后端
###
function uploadimage_action()
{
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$uid = $this->uid;
$usertype = $this->usertype;
if(!$uid){
return jsonErr('请先登录');
}
if (isset($_FILES['uploadedImage'])) {
$image = $_FILES['uploadedImage'];
// 检查是否有错误发生
if ($image['error'] !== UPLOAD_ERR_OK) {
return jsonErr($image['error']);
}
// 检查文件大小
$maxSize = 2000000;
if ($image['size'] > $maxSize) {
return jsonErr("文件过大. 最大允许大小为: " . ($maxSize / 1000000) . "MB");
}
// 获取文件扩展名并转为小写
$ext = strtolower(pathinfo($image['name'], PATHINFO_EXTENSION));
// 检查文件类型
$allowedTypes = ['jpg', 'jpeg', 'png', 'gif'];
if (!in_array($ext, $allowedTypes)) {
return jsonErr("不允许的文件类型. 允许的类型为: " . implode(", ", $allowedTypes));
}
// 确保目标目录存在
$targetDir = APP_PATH . 'data'.DIRECTORY_SEPARATOR.'upload'.DIRECTORY_SEPARATOR.'video'.DIRECTORY_SEPARATOR.$uid;
if (!is_dir($targetDir)) {
mkdir($targetDir, 0777, true);
}
// 获取文件信息
//$imageName = basename($image['name']);
$imageName = time() . '.' . $ext;
$imagePath = $targetDir . DIRECTORY_SEPARATOR . $imageName;
// 检查文件是否已经存在
if (file_exists($imagePath)) {
return jsonErr('文件已存在');
}
// 尝试移动上传的文件
if (move_uploaded_file($image['tmp_name'], $imagePath)) {
return jsonSuc(['imageSrc' => $this->config['sy_weburl'].'/data/upload/video/'.$uid.'/'.$imageName]);
} else {
return jsonErr("图片上传失败");
}
}
}
}
function uploadvideo_action()
{
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$uid = $this->uid;
$usertype = $this->usertype;
if(!$uid){
return jsonErr('请先登录');
}
if (isset($_FILES['uploadedVideo'])) {
$video = $_FILES['uploadedVideo'];
// 检查是否有错误发生
if ($video['error'] !== UPLOAD_ERR_OK) {
return jsonErr($video['error']);
}
// 检查文件大小
$maxSize = 100000000;
if ($video['size'] > $maxSize) {
return jsonErr("文件过大. 最大允许大小为: " . ($maxSize / 1000000) . "MB");
}
// 获取文件扩展名并转为小写
$ext = strtolower(pathinfo($video['name'], PATHINFO_EXTENSION));
// 检查文件类型
$allowedTypes = ['mp4', 'avi', 'mov', 'mkv', 'flv', 'wmv', 'webm', 'mpg', 'mpeg', '3gp', '3g2', 'ogv'];
if (!in_array($ext, $allowedTypes)) {
return jsonErr("不允许的文件类型. 允许的类型为: " . implode(", ", $allowedTypes));
}
// 确保目标目录存在
$targetDir = APP_PATH . 'data'.DIRECTORY_SEPARATOR.'upload'.DIRECTORY_SEPARATOR.'video'.DIRECTORY_SEPARATOR.$uid;
if (!is_dir($targetDir)) {
mkdir($targetDir, 0777, true);
}
// 获取文件信息
//$imageName = basename($image['name']);
$videoName = time() . '.' . $ext;
$videoPath = $targetDir . DIRECTORY_SEPARATOR . $videoName;
// 检查文件是否已经存在
if (file_exists($videoPath)) {
return jsonErr('文件已存在');
}
// 尝试移动上传的文件
if (move_uploaded_file($video['tmp_name'], $videoPath)) {
return jsonSuc(['videoSrc' => $this->config['sy_weburl'].'/data/upload/video/'.$uid.'/'.$videoName]);
} else {
return jsonErr("视频上传失败");
}
}
}
}