我想上传文件到云端。云中有3个文件夹,如P1,P2和P3。我上传图像(所有格式),音频文件,视频文件,ppt,pptx,doc,docx,pdf和文本文件。我想在上传之前做这些事情。
- 生成文件名为J1_YYYYMMDDHHMMSS_YYYYMMDDHHMMSS.jpg和j_yyyymmddhhmmss .jpg的第二个jpeg图像为j2_yyyymmddhhmmss .jpg,等等。
所以相同类型的文件以各自的字母和数字开始,必须是唯一的,然后是开始时间,然后是结束时间。(对于以P开头的ppt, pptx为PX, doc为D, docx为DX, pdf为PF,文本为T,音频为A,视频为V)
和第一个YYYYMMDDHHMMSS是起始周期。第二个YYYYMMDDHHMMSS为结束时间。
<form action="send.php" enctype="multipart/form-data"><input type="file" name="var-trigger"></form>
PHP创建数组$_FILES
在本例中,$_FILES['var-trigger']
$_FILES['var-trigger']后的第二个数组:
$_FILES['var-trigger']['tmp_name']
$_FILES['var-trigger']['name']
$_FILES['var-trigger']['size']
$_FILES['var-trigger']['type'] //text/plain, image/png et cetera
使用if语句和preg_match:
if (preg_match('/^image'/gif$/i', $_FILES['var-trigger']['type'])) { $ext='gif';}
else if (preg_match('/^image'/(x-)?png$/i', $_FILES['var-trigger']['type'])) { $ext='png';}
if ($ext=='png') {$file_title= 'P'; }
else if ($ext=='gif') {$file_title= 'G'; }
<?php
// integer starts at 0 before counting
$i = 0;
$dir = $ext;
if ($handle = opendir($dir)) {
while (($file = readdir($handle)) !== false){
if (!in_array($file, array('.', '..')) && !is_dir($dir.$file))
$i++;
}
}
// prints out how many were in the directory
echo "There were $i files";
?>
$filename = 'direction'. $file_title . $i . time() . $SERVER['REMOTE_ADDR'] . $ext;
if(!is_uploaded_file($_FILES['var-trigger']['tmp_name']) or !copy($_FILES['var-trigger']['tmp_name'],$filename)) { echo 'error'; exit(); }
$SERVER['REMOTE_ADDR']避免同时上传2个文件
Count how many files in directory php!Is_upload_file行用于防止使用/etc/