[英]PHP - Random file name when upload a file into directory and add to the bottom the file extension?
[英]Add file in directory depending on the extension
在我的服務器中,我有不同的目錄,例如:
/-js ,
/-html ,
/-php ,
/-css。
我想創建這樣的方法addFile($file_name,$file_extension)
並在我的目錄文件中創建諸如$file_name
並在目錄中創建$file_extension
,該文件將具有擴展名,例如$file extension
。 我怎樣才能做到這一點?
您可以使用file_put_contents 。 您可以添加數據並創建具有任何擴展名的文件。 在$ filename中,您可以將完整路徑放入文件夾和文件名。
記住file_put_contents不創建目錄結構。 僅文件。
為了防止這種情況,您可以使用以下方法:
if (!is_dir('upload/images/')) {
// dir doesn't exist, make it
mkdir('upload/images/');
}
$image = 'file.txt';
$some_data = 'Text inside your file';
file_put_contents('upload/images/' . $image, $some_data);
否則,您可以從本文http://www.w3schools.com/php/php_file_create.asp了解有關創建文件的信息。
因此,您的方法將類似於:
function addFile($file_name, $file_extension) {
$dirs = ['js', 'css', 'html', 'php'];
foreach($dirs as $dir) {
if($dir == $file_extension) {
file_put_contents($dir . '/' . $file_name . '.' . $file_extension, 'Some text data? ');
}
}
}
作為一個大概的例子,下面的內容可能有用嗎?
function addfile( $filename=false ){
if( $filename && file_exists( $filename ) ){
clearstatcache();
$basedir = $_SERVER['DOCUMENT_ROOT'];
$ext=pathinfo( $filename, PATHINFO_EXTENSION );
$name=pathinfo( $filename, PATHINFO_BASENAME );
switch( $ext ){
case 'css': $dir='/css/'; break;
case 'txt': $dir='/txt/'; break;
case 'js': $dir='/js/';break;
case 'html': $dir='/html/'; break;
case 'php': $dir='/php/'; break;
case 'jpg':
case 'jpeg': $dir='/images/jpg/'; break;
case 'png': $dir='/images/png/'; break;
case 'gif': $dir='/images/gif/'; break;
case 'mp3': $dir='/audio/mp3/'; break;
case 'mp4': $dir='/video/mp4/'; break;
default: $dir=false; break;
}
if( $dir ){
$targetpath = $basedir . $dir;
if( !file_exists( $targetpath ) ){
/* create the directory - recursively if necessary */
createdirs( $targetpath );
}
return file_put_contents( $targetpath . $name, '', FILE_TEXT );
}
return false;
}
return false;
}
function createdirs( $path=NULL, $perm=0644 ) {
if( !file_exists( $path ) ) {
createdirs( dirname( $path ) );
mkdir( $path, $perm, TRUE );
clearstatcache();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.